关于继承,初始化。。。。。
Java code
class Animal{
String color="red";
Animal(){
print();
color="black";
}
void print(){
System.out.println("animal color is "+color);
}
}
class Cat extends Animal{
String color="yellow";
Cat(){
print();
super.print();
}
void print(){
System.out.println("cat color is "+color);
}
public static void main(String[] args){
new Cat();
}
}
结果是:
cat color is null
cat color is yellow
animal color is black
疑问:
1.当子类构造函数去调用父类构造函数时,如果父类构造函数中调用的成员函数被子类覆盖过,那么就用子类?
2.为什么是null? 显示初始化不是优先于构造函数么?当构造函数启动时,成员变量不是已经被显示初始化了么?
------解决方案--------------------