继承作用:代码复用
- 通过extends来实现继承
- 超类/父类:共有的属性和行为
派生类/子类:特有的属性和行为- 派生类可以访问派生类的+超类的,但超类不能访问派生类的
- 一个超类可以有多个派生类,但一个派生类只能继承一个超类-----------单一继承
- 继承具有传递性
- java规定:构造派生类之前必须先构造超类
- 在派生类的构造方法中若没有调用超类的构造方法,则默认super()调用超类的无参构造方法
public class SuperDemo {
public static void main(String[] args) {
Boo o = new Boo();
}
}
class Aoo{
Aoo(){
System.out.println("超类构造方法");
}
}
class Boo extends Aoo{
Boo(){
super(); //默认的,调用超类的无参构造方法
System.out.println("派生类构造方法");
}
}
- 在派生类的构造方法中若自己调用了超类的构造方法,则不再默认提供
注意:super()调用超类构造方法,必须位于派生类构造方法的第一行
class Coo{
Coo(int a){
}
}
class Doo extends Coo{
Doo(){
super(5); //调用Coo的有参构造方法
}
/*
//如下代码为默认的
Doo(){
super();
}
*/
}
super:指代当前对象的超类对象
super的用法:
- super.成员变量名-------------------------访问超类的成员变量
- super.方法名()-----------------------------调用超类的方法
- super()---------------------------------------调用超类的构造方法