面向对象之继承(1)

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注解

    如果加上该注解没有出错就是重写了父类的方法,否则就没有重写

猜你喜欢

转载自www.cnblogs.com/dhome/p/9490484.html