1、继承的作用:
通过继承 将多个类中的相同的内容摘取出来 变成一个新的类 让其他类和当前新的类产生关系 达到代码复用性的目的,可以更好的维护类和类之间的关系
2、如何继承
Class A extend B
A是B的子类(派生类)
B是A的父类(超类/基类)
3、继承的注意事项:
继承在java中只支持单继承,一个子类只能有一个父类,但是一个父类可以有多个子类
子类继承父类,重写父类的方法,子类可以获得父类的部分功能。
子类不能从父类继承的:private修饰的方法、final修饰的方法、父类构造器
父类static修饰的方法子类可以继承但不能重写
4、子类创建对象时会导致父类加载,先调用父类的构造器
5、子类继承父类时不能继承父类的构造器,但是可以调用父类的构造器
如果没有默认的空构造,要调用父类的有参构造,就必须用关键字super显式地编写调用父类构造器的语句,并配备参数列表
因为会先调用父类的构造器,所以运行的结果是:
证明-4;
6、子类重写父类方法,默认情况下会调用子类重写的方法。子类对象调用父类原来的方法,可以通过super.调用
7、因为java只支持单继承,所以当A继承B不能满足需求时,较好的方法是B继承C,多层继承。
以上是一个多层继承简单的例子,学生继承人的特征,并有自己新的特征,坏学生继承学生,有相同的day方法,但有不同的表现。
多层继承较好地解决了前面继承无法满足的要求,但是继承链过长容易导致代码不易维护,后期功能拓展很麻烦。
8.当一个类没有显式地继承一个类时,默认会隐式地继承Object类
以上代码可以Person类的父类其实就是Object,在Person类中可以使用Object的资源和方法,如toString方法
9、继承的重写
子类重写父类要遵守以下规则:
(1)方法名/形参列表相同
(2)子类的返回值类型/抛出异常 小于等于 父类
(3)子类的修饰符权限 大于等于 父类
检验重写:@Override注解
如果加上该注解没有出错就是重写了父类的方法,否则就没有重写