面向对象是将客观事物抽象为类,然后类派生出对象,对象有属性,行为,通过对象进行数据交互,完成功能需求
面向过程是将功能需求拆解成一个个步骤,串联执行
面向对象具有封装,继承,多态三大特征
封装:对客观世界的事物抽象成Java类,该类具有现实事物的属性,行为(方法) 继承:子类继承父类,具有父类同样的属性和行为,比如小狗继承动物,有眼睛,能跑 多态:子类继承父类后,可以有自己独有的属性和方法,比如马可以跑,鸟可以飞
Java只支持单继承,即只能有1个父类,但是实现的接口可以有多个
Java不支持多重继承原因:
- 菱形问题,即D继承B、C,而B、C同时继承A,那么D在就会的都2份A的属性和方法,继而产生歧义
- 多重继承带来更多的属性和方法,使得对象更加臃肿
Java8以前,接口支持多重实现,但不能有实现方法
Java8后,接口可以有默认方法实现,如果要实现多重接口,则实现类或者接口必须重载(重写)默认方法
参考资料
Hollis 大神的《2023全新Java面试宝典课程,八股文学习资料》