继承:
父类/超类:所有派生类所共有的属性和行为
子类/派生类:派生类所特有的属性和行为
1、java中类继承的作用是为了代码的复用,子类通过extends
关键字来实现继承父类所具有的属性和行为,派生类继承超类后,派生类具有派生类和超类的所有的属性和行为。
一个超类可以有多个派生类,但是一个派生类只能有一个超类,单一继承
继承具有传递性,例如B继承A,C继承B,那么C不仅有B的所有属性和行为,因为B也继承了A,所以C也具有A的所有属性和行为。
2、Java规定:构造派生类之前必须先构造超类,在派生类的构造方法中若没有调用超类的无参构造方法,则默认super()调用超类的无参构造方法,在派生类的构造方法中若调用了超类的构造方法,则不再默认提供。
注意:super()调用超类构造必须位于派生类构造的第一行。
3、super的用法:
- super.成员变量名 :访问超类的成员变量
- super.方法名() :调用超类的方法
- super() :调用超类的构造方法
4、方法的重写:override
1)发生在父子类中,方法名称相同,参数列表相同,方法体不同
2)重写方法被调用时,看对象的类型
3)遵循两同两小一大原则:
- 两同:方法名称相同、参数列表相同
- 两小:派生类方法的返回值类型小于或等于超类方法的
- void时必须相等
- 基本类型必须相等
- 引用类型时小于或等于
- 两小:派生类方法抛出的异常小于或等于
- 一大:派生类方法的权限大于或等于超类方法的
我们知道了方法的重写,目的是我们在继承了父类的方法以后,我们想要不同的实现方式,而进行方法的重写,当我们创建父类对象调用该方法时,我们会调用父类的原有方法,我们创建子类对象调用父类的方法时,我们会调用我们重写之后的方法,那么我们如果创建了子类对象,然后想要调用父类的方法时,这时就用到了super关键字,可以使用super.方法名()
的方式来调用父类原有的方法。