java 面试基础

1.什么是面对对象?

面向对象编程是使用类,对象,继承性、多态性、封装性和抽象的一种程序设计方法。

注意“基于对象”和“面向对象”的区别

1.基于对象,通常是指的是对数据的封装,以及提供一组方法对封装过的数据操作。

2.面向对象,则是基于对象的基础上增加了多态性。所谓的多态,就是可以用统一的方法对不同的对象进行同样操作。

2.什么是多态?

多态即事物在运行过程中存在不同的状态。多态可以分为编译时多态和运行时多态,编译多态是指方法重载,运行多态是指方法重写

对于运行多态需要满足以下三点:

1.要有继承关系

2.子类重写父类方法

3.父对象的引用指向子类对象

多态实现的机制

其实就是依靠静态分配和动态分配

动态分配是指在运行期间才能确定变量的实际类型,典型的就是方法重写。只有在运行期间。根据实例化子类的不同,调用不同子类中重写的方法。

静态分配是指在编译时期就能完全确定,在类加载的解析阶段就会把涉及的符号转化为可确定的直接引用,不会延迟到运行期再去完成,典型的例子就是方法重载。

3.接口与抽象类的区别?

抽象类是一个包含具体方法和抽象方法的(方法未被实现)的类,抽象方法必须被该抽象类的子类实现。抽象类是可以继承的。

接口是描述类的一站蓝图或者说是类的一种契约,他包含了许多空方法,这代表着它的所有子类都应该拥有共同点。他的子类应该提供这些方法的具体实现。一个类需要用implement来实现接口,接口可以用extends集成其它接口。

后续会继续更新

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章