标签:初始化 无法 href tle 说明 xtend 反射 extend 就会
class Fu{
int a=2;
Fu() {
System.out.println("fu run");
}
}
class Zi extends Fu{
Zi() {
System.out.println("zi run");
}
}
public class Copy {
public static void main(String[] args) {
Zi zi = new Zi();
System.out.println(zi.a);
}
}
运行结果为 fu run ,zi run ,0 说明子类在实例化的时候,调取了父类的构造函数中的方法,但并没有调用成员变量。,
========父类引用指向子类对象的时候 根据引用变量中 实例所属的类调用不同的类的方法,这种多态只适用于方法不适用与成员变量。
简单的理解为Java不支持属性字段覆盖(override),只支持方法覆盖 。
======实例化子类的时候,初始化了父类的构造函数,但未产生对象,因为父类有可能是接口,若父类有为空的构造方法则默认调用。因为子类必须持有父类的成员变量值,所以要初始化一下,且对于成员变量不能重写,重写也无多态效果。
标签:初始化 无法 href tle 说明 xtend 反射 extend 就会
原文地址:http://www.cnblogs.com/efforts-will-be-lucky/p/7121832.html