继承
猫狗猪羊都要写重复的变量和方法,就产生了动物类
子类可以新建变量方法(特有的追加),也可以重写变量方法(特别的重写)
继承好处
提高了复用性,提高了维护性
弊端:
父类更改,子类也跟着变
继承中访问顺序
变量的访问顺序:子类局部——子类成员——父类成员——报错
成员方法的访问顺序:子——父——报错
继承中构造方法的访问顺序:子类(无参有参)构造方法第一条默认语句都是super(),因为没有父对象哪来子对象呢
父类没有无参构造方法:
在子类中任意位置写上super(20,“a”);也就是有参构造
在父类中自己提供一个无参构造方法
super&this关键字
this就是本类对象的引用,可以访问:成员变量,成员方法,构造方法
this.age this.method super()这个是父类无参构造方法
方法重写
子类和父类方法名一样,参数一样,子方法上一行写上@override,起到校验作用
注意:私有方法不能重写,子类方法权限修饰符不低于父类public>无>private
权限修饰符的范围:
根据包默两个字记全部
final
fianl修饰类:该类不能被继承(不能有子类,但是可以有父类)
final修饰方法:该方法不能被重写
final修饰变量:表明该变量是一个常量,不能再次赋值
fianl修饰基本数据类型变量,量不变
final修饰引用数据类型变量,址不变,内容是可以修改的
static
被类的所有对象共享
一句话:静态成员方法只能访问静态成员
非静态的成员方法:
能访问静态的成员变量
能访问非静态的成员变量
能访问静态的成员方法
能访问非静态的成员方法
静态的成员方法:
能访问静态的成员变量
能访问静态的成员方法