super
java 中的 super 关键字是一个引用变量,用于引用直接父类对象。
每当创建子类的实例时,父类的实例被隐式创建,由super关键字引用变量引用。
java super关键字的用法如下:
- super可以用来引用直接父类的实例变量。
- super可以用来调用直接父类方法。
- super()可以用于调用直接父类构造函数。
1、引用父类实例变量
class Animal {
String color = "white";
}
class Dog extends Animal {
String color = "black";
void printColor() {
System.out.println(color);
System.out.println(super.color);
}
}
class TestSuper {
public static void main(String args[]) {
Dog d = new Dog();
d.printColor();
}
}
//输出 black white
2、调用父类构造器方法
class Person {
int id;
String name;
Person(int id, String name) {
this.id = id;
this.name = name;
}
}
class Emp extends Person {
float salary;
Emp(int id, String name, float salary) {
super(id, name);
//reusing parent constructor 重用父类构造器
this.salary = salary;
}
void display() {
System.out.println(id + " " + name + " " + salary);
}
}
class TestSuper {
public static void main(String[] args) {
Emp e1 = new Emp(1, "haixing", 5600y);
e1.display();
}
}
//输出>> 1 haixing 5600y
这里 Emp 类继承了 Person 类,所以 Person 的所有属性都将默认继承到Emp。要初始化所有的属性,可使用子类的父类构造函数。这样,我们重用了父类的构造函数。