java,中的子类继承父类,子类如何调用父类的构造函数?举一个简单的例子加注释说明

如题所述

子类无条件调用父类的无参构造函数,实例:

父类:

package com.test;


public class TestFatherClass {

private String name="abc";

TestFatherClass(){

System.out.println("1、这是父类的无参构造函数");

}

TestFatherClass(String a){

System.out.println("2、这是父类的有参构造函数");

}

}


子类:

package com.test;


public class TestChildClass extends TestFatherClass{

TestChildClass(){

System.out.println("3、这是子类的无参构造函数");

}

TestChildClass(String str){

System.out.println("4、这是子类的有参构造函数");

}

public static void main(String[] args) {

System.out.println("实例化对象时:(无参)");

TestChildClass test = new TestChildClass();

System.out.println("实例化对象时:(有参)");

TestChildClass test2 = new TestChildClass("adad");

}

}


输出结果:

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-12-15

只能在子类的构造函数中的第一行调用父类的构造函数,用super(参数).

class A{
    private int a;
    public A(int a){
        this.a=a;
    }
}
class B extends A{
    private int b;
    public B(int a, int b){
        super(a);
        this.b=b;
    }
}

追问

如果父类中的构造方法是无参的,子类怎么调用?

追答

直接使用super()就可以

本回答被提问者采纳
第2个回答  2014-09-29
在构造函数中使用 super()

public class SuperA{
public SuperA(){
//....
}
}

public class MyClass extends SuperA {
public MyClass (){
super(); // 只能在构造函数的可执行代码的第一行
// ...
}
}
第3个回答  2014-09-29
public class Father{

public Father(){};

}

public class Son extends Father{
public Son(){
supter(); //supter 代表 Father father = new Father()中father对象,换句话说就是直接 父类对象的默认引用

}

}
第4个回答  2014-09-29
默认情况下父类需要有一个无参构造 子类的构造方法不写super(XXX)的情况下 默认调用父类无参构造
相似回答