JAVA对象创建过程
class Animal{
String name;
Animal() {
System.out.println("class Animal");
}
Animal(String name){
this.name = name;
System.out.println(name + " class Animal");
printNumber();
}
public void printNumber(){
}
}
class Fish extends Animal{
Fish() {
System.out.println("class Fish");
}
}
class GoldFish extends Fish {
GoldFish() {
System.out.println("class GoldFish");
}
}
class Cat {
Cat(){
System.out.println("class cat");
}
}
class Rabbit {
private static int number;
private static Cat cat = new Cat();
public Rabbit() {
number++;
System.out.println(number + "class rabbit");
}
}
class Dog extends Animal{
public int dogNumber;
private GoldFish goldFish = new GoldFish();
static Rabbit blackRabbit = new Rabbit();
static Rabbit whiterabbit = new Rabbit();
public Dog() {
super("Tom");
System.out.println("class Dog");
dogNumber = 10;
System.out.println("The dog's number is:" + dogNumber);
}
public void printNumber(){
System.out.println("The dog's number is:" + dogNumber);
}
}
public class TestInheritanceConstructor extends Animal {
public static void main(String[] args){
new Dog(); //Test the executive order of constructor
}
}
结果顺序:
class cat
1class rabbit
2class rabbit
Tom class Animal //先执行的构造方法
The dog's number is:0 //这里我有点疑问
class Animal //后来又初始化的非静态的,在执行构造之后。
class Fish
class GoldFish
class Dog
The dog's number is:10
浙公网安备 33010602011771号