1.什么是面对对象?
面向对象编程是使用类,对象,继承性、多态性、封装性和抽象的一种程序设计方法。
注意“基于对象”和“面向对象”的区别
1.基于对象,通常是指的是对数据的封装,以及提供一组方法对封装过的数据操作。
2.面向对象,则是基于对象的基础上增加了多态性。所谓的多态,就是可以用统一的方法对不同的对象进行同样操作。
2.什么是多态?
多态即事物在运行过程中存在不同的状态。多态可以分为编译时多态和运行时多态,编译多态是指方法重载,运行多态是指方法重写
对于运行多态需要满足以下三点:
1.要有继承关系
2.子类重写父类方法
3.父对象的引用指向子类对象
多态实现的机制
其实就是依靠静态分配和动态分配
动态分配是指在运行期间才能确定变量的实际类型,典型的就是方法重写。只有在运行期间。根据实例化子类的不同,调用不同子类中重写的方法。
静态分配是指在编译时期就能完全确定,在类加载的解析阶段就会把涉及的符号转化为可确定的直接引用,不会延迟到运行期再去完成,典型的例子就是方法重载。
3.接口与抽象类的区别?
抽象类是一个包含具体方法和抽象方法的(方法未被实现)的类,抽象方法必须被该抽象类的子类实现。抽象类是可以继承的。
接口是描述类的一站蓝图或者说是类的一种契约,他包含了许多空方法,这代表着它的所有子类都应该拥有共同点。他的子类应该提供这些方法的具体实现。一个类需要用implement来实现接口,接口可以用extends集成其它接口。
后续会继续更新