java中super(),与构造方法链(constructor chaining)

Posted Keep

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中super(),与构造方法链(constructor chaining)相关的知识,希望对你有一定的参考价值。

public class Apple extends Fruit {

}

class Fruit{
    public Fruit(String name){
        System.out.println("Fruit\'s constructor is invoked");
    }
}

这一段代码好像看上去没啥问题吧,编译之后给的错是

由于Apple中没有显式的定义构造方法,所以,Apple的默认构造方法被调用了,因为Apple是Fruit的子类,Apple隐式构造函数第一句将执行super(),于是乎去调用Fruit的构造函数,但是Fruit类没有无参构造函数,调用出错。

以上是关于java中super(),与构造方法链(constructor chaining)的主要内容,如果未能解决你的问题,请参考以下文章

Java中的this与super关键字

Java自学-接口与继承 super

Java构造函数

java中super关键字的作用

this与super关键字

Java 泛型 lt;super T>中 super 怎么 理解?与 extends 有何不同