继承
继承是面向对象三大特征之一,可以使得子类具有父类的属性和方法,还可以在子类中重新定义,以及追加属性和方法
继承好处
提高了复用性,提高了维护性
弊端:
父类更改,子类也跟着变
继承中访问顺序
变量的访问顺序:子类局部——子类成员——父类成员——报错
成员方法的访问顺序:子——父——报错
继承中构造方法的访问顺序:子类(无参有参)构造方法第一条默认语句都是super(),除非我们在第一行指定构造方法
父类含有参构造方法,没无参构造方法:
在子类中调用有参构造
在父类中提供一个无参构造方法
super&this关键字
this就是本类对象的引用,可以访问:成员变量,成员方法,构造方法
this.age this.method super()这个是父类无参构造方法
方法重写
子类和父类方法声明一样,子方法上一行写上@override,起到校验作用
注意:私有方法不能重写,子类方法权限修饰符不低于父类public>无>private
继承的注意事项
只支持单继承,支持多层继承
权限修饰符的范围:
final
fianl修饰类:该类不能被继承(不能有子类,但是可以有父类)
final修饰方法:该方法不能被重写
fianl修饰基本数据类型变量,量不变
final修饰引用数据类型变量,址不变,内容是可以修改的
static
修饰特点:
被类的所有对象共享
访问特点:
一句话:静态成员方法只能访问静态成员
非静态的成员方法:
能访问静态的成员变量
能访问非静态的成员变量
能访问静态的成员方法
能访问非静态的成员方法
静态的成员方法:
能访问静态的成员变量
能访问静态的成员方法