由于子类不能继承父类的构造方法,因此要显示调用父类的构造方法,必须在构造方法体的第一行使用super()方法。该方法会调用父类相应的构造方法来完成子类的初始化工作。
super使用情况:
1. 在类的构造方法找中,通过super语句调用该类的父类的构造方法
2. 在子类中访问父类中的成员。
super关键字
(1)super能出现在实例方法和构造方法中。
(2)super的语法是“super.”和“super()”。
(3) super不能出现在静态方法中。
(4) super大部分情况下是可以省略的。
(5)super()只能出现在构造方法的第一行,通过当前的构造方法去调用“父类”中的对应的构造方法,目的是:创建子类对象时,先初始化父类型特征。举个例子
构造父类animal和子类cat
//父类,Animal类
class Animal {
//构造函数
public Animal() {
System.out.println("Animal");
}
}
//子类,Cat类
class Cat extends Animal{
//构造函数
public Cat() {
System.out.println("Cat");
}
}
运行一下代码
public static void main(String[] args) {
Cat cat = new Cat();
}
运行结果为
animal
cat
我们把子类的构造方法的第一行给它加上super():
//子类,Cat类
class Cat extends Animal{
//构造函数
public Cat() {
super();
System.out.println("Cat");
}
}
在运行结果依旧是 animal,cat;
所以说当子类的构造方法内第一行没有出现“super()”时,系统会默认给它加上无参数的"super()"方法。