关于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子类对象的时候 不会去创建父类对象,只是调用父类的构造方法,但是为什么两段代码输出会不一样??
相关推荐
全面解析Java main方法
main方法是我们学习Java语言学习的第一个方法,也是每个java使用者最熟悉的方法,每个Java应用程序都必须有且仅有一个main方法。这篇文章通过实例代码给大家介绍java main方法的相关知识,感兴趣的朋友跟随脚本之家小编一起学习吧
Java学习1-子类实例化时调用父类构造函数时this指向
Java学习1-子类实例化时调用父类构造函数时this指向 Java久疏战阵,重新拾起碰到了不少问题,以前的基础知识忘得差不多了,趁着不能出门多学习下。 子类通过new的形式实例化时,会调用父类的构造,那么此时在父类中的this关键字指向的是谁呢?通过实际代码来看看。 父类Animal public class Animal { private String name; ...
JAVA基础 之 父类引用指向子类对象(多态)
在弄懂桥接设计模式的时候,看到了这样一条语句Bridge bridge = new MyBridge();相关类:public class Bridge { private Sourceable source; public void method(){ } public Sourceable getSource() { return source; } public voi...
构造函数的继承问题 笔记
子类如果有多个构造函数的时候,父类要么没有构造函数, 让编译器自动产生,那么在执行子类构造函数之前先执行编 译器自动产生的父类的缺省构造函数;要么至少要有一个显 式的缺省构造函数可以让子类的构造函数调用。
Java的对象、类、方法和接口[参考].pdf
Java的对象、类、方法和接口[参考].pdf


Java SE
