码迷,mamicode.com
首页 > 其他好文 > 详细

子类实例化,父类构造器中被调用被子类重写的方法,会执行父类还是子类的呢?

时间:2016-08-27 20:42:34      阅读:427      评论:0      收藏:0      [点我收藏+]

标签:

public class Test001 {

public static void main(String[] args) {
new Child();
}

}
class Father{
private String name = "f";
public Father(){
tell();
}
public void tell(){
System.out.println("father "+this.name);
}
}
class Child extends Father{
private String name = "c";
public Child(){
tell();
}
public void tell(){
System.out.println("child "+name);
}
}

 

child null
child c

说明子类实例化,先实例化父类对象,即先将父类变量初始化,然后调用父类构造函数,不过此时如果父类构造器调用的被子类重写的方法,则调用的是子类的方法。此时的name也是子类的name,因为此时子类变量尚未实例化,所以值为null;

子类实例化,父类构造器中被调用被子类重写的方法,会执行父类还是子类的呢?

标签:

原文地址:http://www.cnblogs.com/chuliang/p/5813641.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!