继承Extends
继承是面向对象的三大特征之一,也是软件实现复用的重要手段,Java的继承具有单继承的特点,每个子类只有一个直接父类
名词:子类、父类、基类
什么时候选择继承:
1、子类需要额外添加成员变量
2、子类需要添加自己独有的行为方式
注:
1、Java里面只能直接继承一个类(不是只能继承一个类)
2、可以继承父类的属性和方法,但是不能继承父类的构造方法(需要自己实现)
3、super表示调用父类的属性和方法
4、super()表示调用父类的构造方法
5、this 表示访问当前类或者对象的属性或者方法
6、构造方法的执行顺序:父类A -> 子类B -> 子类C
7、子类无法继承父类中private修饰的属性和方法
重写:如果子类需要在父类的基础之上重新实现父类的方法,子类必须重写这个方法 ——重写(覆盖)。子类重写方法后,不会去调用父类的方法。
特点:1、两同:方法名和参数相同 2、一大:子类修饰符范围>=父类修饰符范围3、两小:子类的返回值范围<=父类的返回值范围3、子类抛出错误的范围<=父类抛出错误的范围
优点:复用性更强
缺点:耦合性增强,安全性降低
建议:1、量让属性的修饰符为private2、尽量让父类方法的修饰符为private或final3、尽量不要在父类的构造方法里面调用可能被重写的方法
多态(面向对象三大特征之一)
1、编译和运行时是两个东西 不同对象
2、编译和运行的对象是有继承关系的
3、只能子类对象传给父类的对象,不能把父类对象传给子类对象
4、在使用时,如果需要使用子类的方法或者属性,必须强制转化为对应的子类对象

image.png
instanceof:判断某个对象是不是某个类的对象