关于java子类创建对象时,父类做了什么的问题
代码一:
public class Animal {
public String name = "animal";
public Animal(){
printInfo();
}
public void printInfo() {
System.out.println(name);
}
}
class Dog extends Animal{
public String name = "dog";
public void printInfo(){
System.out.println(name);
}
public static void main(String[] args) {
Dog dog = new Dog();
}
}
输出 : null
代码二:
public class Animal {
public String name = "animal";
public Animal(){
printInfo();
}
public void printInfo() {
System.out.println(name);
}
}
class Dog extends Animal{
public String name = "dog";
public void printInfo(){
System.out.println(super.name);
}
public static void main(String[] args) {
Dog dog = new Dog();
}
}
输出: animal
这是为什么呢? 我知道new子类对象的时候 不会去创建父类对象,只是调用父类的构造方法,但是为什么两段代码输出会不一样??