面向对象 面试题
面象对象的三大特征:
- 继承:extends
作用:代码复用、传递性。
子类继承父类的特征和行为。子类可以有父类的方法,属性(非private)。子类也可以对父类进行扩展,也可以重写父类的方法。缺点就是提高代码之间的耦合度。
super关键字:通过super实现对父类成员的访问。用来引用当前对象的父类。通过super显示的调用父类的有参构造,无参构造可以隐式调用
this:用来引用当前对象,指向自己
final:可以修饰类,方法,属性;修饰的类不能继承,修饰的方法不能重写,修饰的属性不能修改。
- 封装:隐藏内部实现,只暴露公共行为
1. 类:封装的是对象的属性和行为
2. 方法:封装一段特定的业务逻辑功能
3. 访问控制修饰符:封装的是具体的访问权限
- 多态:分为:
1. 行为多态(所有抽象方法)体现在:
重载:
1) 发生在一个类中,方法名称相同,参数列表不同,方法体不同
2) 遵循"编译期"绑定,看参数/引用的类型来绑定方法
重写:
1) 发生在父子类中,方法名称相同,参数列表相同,方法体不同
2) 遵循"运行期"绑定,重写方法被调用时,看对象的类型
3) 遵循"两同两小一大"原则:
两同:
- 方法名称相同
- 参数列表相同
两小:
1. 派生类方法的返回值类型小于或等于超类方法的
1) void时,必须相等
2) 基本类型时,必须相等
3) 引用类型时,小于或等于
2. 派生类方法抛出的异常小于或等于超类方法的-----异常之后
一大:
派生类方法的访问权限大于或等于超类方法的-
2. 对象多态(所有对象)体现:
向上造型:向上转型是自动的 Father f = new Children();不需要强转
向下造型:向下转型需要强转 Children c = (Children)new Father()需要强转。让父类知道具体转成哪个子类