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()
显式调用父类的构造函数,也会从子类中自动调用它。