用javap工具分析如下类:
class
Animal
{
private
String name
;
public
void
info
(){
System
.
out
.
println
(
name
);
}
}
public
class
Wolf
extends
Animal
{
private
double
weight
;
}
从编译后的class文件可以看出:
父类的属性并未加入到子类中,但是父类的方法却加入了子类中。
这说明 子类和父类可以同时拥有同名的实例变量,子类的值并未将父类的值覆盖掉,而若是有同名的方法的时候,子类的方法会把父类的方
法覆盖掉,所以:
父类 对象 = new 子类(); 的时候:
对象.属性 ----》 调用的是 父类的
对象.方法 ----》 调用的是 子类的