注意:this和super不能同时出现在一个构造函数内,还有不能出现自己调用自己的情况,如果尝试编译器会提示出现循环调用,无法正常编译,
打印结果如下:
//child c = new child("小明");
father constructor()
father constructor(String name)大明
child constructor()
child constructor(String name)小明
//child c1 = new child();
father constructor()
father constructor(String name)大明
child constructor()
//father f = new father("大明");
father constructor()
father constructor(String name)大明
//father f = new father();
father constructor()
如果代码改成这样,
结果就是这样了:
father constructor()
child constructor(String name)小明
father constructor()
father constructor(String name)大明
child constructor()
father constructor()
father constructor(String name)大明
father constructor()
是不是明白了,希望能帮到你,实际没有什么实用性,只是纯粹研究罢了
在JAVA中,我们通常把函数叫做方法。对于子类调用父类的构造方法可以做出如下解释: 子类无条件地继承父类的不含参数的构造方法。如果子类自己没有构造方法,则它将继承父类的无参数构造方法作为自己的构造方法;如果子类自己定义了构造方法,则在创建新对象时,它将先执行继承自父类的无参数构造方法,然后再执行自己的构造方法。对于父类含参数的构造方法,子类可以通过在自己的构造方法中使用 super 关键字来调用它,但这个调用语句必须是子类构造方法的第一个可执行语句。