今天学习慕课网发现了一幅画的很好的图,转过来与大家一起分享:
原课程Java中继承初始化顺序
图片中的顺序非常清晰,先是父类对象的属性初始化,然后是父类的构造方法,然后才是子类的属性初始化和子类的构造方法。比如我们可以举一个例子(就以视频中的Animal和Dog吧):
package com.hengbao.start;
public class Animal {
private int age=0;
Animal(){
System.out.println("父类构造器执行了");
age=10;
}
void showAge(){
System.out.println("父类的age是"+age);
}
}
package com.hengbao.start;
public class Dog extends Animal {
private int age=5;
Dog(){
System.out.println("这个时候的age是"+age);
System.out.println("子类的构造器执行了");
age=15;
}
void showAge(){
System.out.println("子类的age是"+age);
}
public static void main(String[] args) {
Animal animal=new Animal();
animal.showAge();
Dog dog=new Dog();
dog.showAge();
//当然了,复习一下父类引用
Animal aDog=new Dog();
aDog.showAge();
}
}
最后,祝愿大家学习快乐,编程顺利!