有继承关系的构造方法问题

下面代码中B继承了A,在new B对象时,首先执行A的无参构造,不管是new B的有参还是无参。

使用无参构造方法new B时,会执行B的无参构造方法;使用有参构造new B对象时,会执行B的有参构造方法

public class TestConstruct {

    public static void main(String[] args) {
        B b = new B();
        b.setAge("qwe");
        b.setName("asdf");
    }
}
class A{
    String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public void a(){
        System.out.println("我是A");
    }
    public A(String name){
        System.out.println("我是A的有参构造");
        this.name=name;
    }
    public A(){
        System.out.println("我是 a 的无参构造");
    }
}
class B extends A{
    String age;
    public String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }
    public void b(){
        System.out.println("我是B");
    }
    public B(String age){
        System.out.println("我是B的有参构造");
        this.age=age;
    }
    public B(){
        System.out.println("我是b 的无参构造");
    }
}

 控制台打印为:

我是 a 的无参构造
我是b 的无参构造
原文地址:https://www.cnblogs.com/gxlaqj/p/11698433.html