您的位置:首页 > 编程语言 > Java开发

Java中的继承初始化顺序

2016-07-12 15:52 429 查看
一、继承的初始化顺序

1.初始化父类,再初始化子类。

2.先执行初始化对象中的属性,再执行构造方法中的初始化。

二、下面,我们用一个简单的例子来说明这一问题:

父类:Animal代码:

package com.bluesky;

public class Animal {
public Animal(){

System.out.println("动物类的构造方法执行了!");

}
}


子类:Dog代码:

package com.bluesky;

public class Dog extends Animal {

public Dog(){
System.out.println("子类的构造函数执行了!");

}

}


测试类:Test代码:
package com.bluesky;

public class Test {

public static void main(String[] args) {
Dog dog = new Dog();

}

}


执行结果:

上面说明先执行父类构造方法,然后才执行子类的构造方法。

下面,我们稍微加点代码,来看下属性和构造方法的执行顺序

父类:Animal代码:
package com.bluesky;

public class Animal {

public int age=10;  //如果构造方法先执行,属性后执行,则age的值应该为:10;
//因为后面赋值会覆盖前面的赋值

public Animal(){

age=20;               //同理
System.out.println("动物类的构造方法执行了!");

}
}


子类:Dog类代码:
package com.bluesky;

public class Dog extends Animal {

public String name="Jack";   //如果构造方法先执行,属性后执行,则name的值应该为:Jack;
//因为后面赋值会覆盖前面的赋值

public Dog(){
name="Rose";
System.out.println("子类的构造函数执行了!");

}

}


测试类:Test代码:
package com.bluesky;

public class Test {

public static void main(String[] args) {
Dog dog = new Dog();
System.out.println("dog.age="+dog.age);
System.out.println("dog.name="+dog.name);

}

}


运行结果:

总结:关于Java中继承的初始化顺序:
先初始化父类对象的属性,然后初始化父类的构造方法。
再初始化子类对象的属性,最后初始化子类的构造方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: