没有创建父类对象,D的构造函数里隐式的有一个super();代表父类的构造函数,函数里输出了C,
对象是new出来 ,构造函数只是创建对象后进行初始化, 你的代码里只new了一个D
你的理解是调用构造函数即创建了一个对象,理解有问题.
对象的创建是new ,构造函数只是初始化,即在创建对象的同时执行了构造函数.
子类默认要super父类的无参构造函数,你这个父类又恰好是无参的,所以,子类里的构造函数不单单只有你写的那句,还有父类构造函数里的那句。
你new的是子类对象 只不过把这个对象当成父类来引用