面向对象之继承和多态
继承
A.继承概述
多个类中有相同的属性和功能,可以把这些内容抽取到单独的一个类(称之为父类),那么多个类就无需定义这些属性和行为,只要继承这个父类即可。
格式
class 子类名 extends 父类名{}
举例 比如 猫和狗类 这两个类具有相同的成员功能 吃饭和走路 ,则可抽取这个功能,定义一个单独动物类 。动物类就是猫和狗类的父类,猫和狗类是动物类的子类。
B.继承的好处
a:提高代码的复用性
b:为多态打基础
c.提高了代码的维护性
C.继承的注意事项
a:子类只能继承父类所有的非私有的成员(成员方法和成员变量)
b:子类不能继承父类的构造方法,但可以通过super关键字访问父类构造方法
super 关键字
super的功能:在子类局部范围访问父类的成员变量
super.成员变量 调用父类的成员变量
super.成员方法 调用父类的成员方法
方法重写
概述:子类中出现了和父类一模一样的方法声明
方法重写的应用:既保留了父类的方法 也定义了子类特有的方法。
方法重写的注意事项
A.父类中私有的方法(被 private修饰的方法)不能被重写
因为父类私有方法子类无法继承
B:子类重写父类方法时访问权限不能更低 最好一致
访问权限排名(stastic>public>final>private)
C:父类为静态方法,子类也必须通过静态方法重写。
final关键字
A:final修饰特点
修饰类: 被修饰类不能被继承
修饰方法: 被修饰的方法不能被重写
修饰变量: 被修饰的变量不能被重新赋值,因为这个量其实是一个常量