Java-继承-多级继承
时间:2020-02-23 14:36:38 来源:igfitidea点击:
在本教程中,我们将学习Java编程语言中的多级继承。
在先前的教程中,我们已经介绍了什么是继承以及如何从子类访问继承的变量和方法。
而且我们还了解了有关super关键字的子级调用其父级构造函数的子级。
何时以及如何调用父构造函数?
为了调用父构造函数,我们在子类中使用super()。
如果我们不使用super()来调用父类的构造函数,则从子类中调用父类的默认构造函数。
例
在下面的示例中,我们有类" GrandParent",该类由"父类"继承,而"父类"由子类" Child"继承。
//three classes involved in inheritance GrandParent | V Parent | V Child
代码
//grand parent class
class GrandParent {
//constructor of GrandParent class
GrandParent() {
System.out.println("From inside the constructor of the GrandParent class.");
}
}
//parent class
class Parent extends GrandParent {
//constructor of Parent class
Parent() {
System.out.println("From inside the constructor of the Parent class.");
}
}
//child class
class Child extends Parent {
//constructor of Child class
Child() {
//calling the parent class constructor
super();
System.out.println("From inside the constructor of the Child class.");
}
}
//the main class
public class Example {
//the main method
public static void main(String[] args) {
//creating an object of the Child class
Child obj = new Child();
}
}
$javac Example.java $java Example From inside the constructor of the GrandParent class. From inside the constructor of the Parent class. From inside the constructor of the Child class.
说明
因此,在上面的代码中,我们可以看到Child类继承了Parent类,而后者又继承了GrandParent类。
在Child类的构造函数内部,我们通过使用super关键字调用Parent类的构造函数。
如果我们看一下上面的输出,可以看到首先调用了" GrandParent"类的构造函数。
然后调用"父类"的构造函数。
最后,将调用Child类的构造函数。
即使我们没有使用super()显式调用父类的构造函数,也会从子类中自动调用它。

