[b]父类 Parent 子类 Sub ,方法多多态的,但是域不是多态的,
sub.field和parent.field分配了俩个不同的存储空间,sub实际上包含了两个field的域;
方法设置成static or private就不具有多态性
静态方法是与类关联的,不是与对象关联的
[/b]
打印结果:
[b]field : 0 , getField : 1
field : 1 , getField : 1 , getSuperField : 0[/b]
sub.field和parent.field分配了俩个不同的存储空间,sub实际上包含了两个field的域;
方法设置成static or private就不具有多态性
静态方法是与类关联的,不是与对象关联的
[/b]
class Parent {
public int field = 0;
public int getField() {
return field;
}
}
class Sub extends Parent {
public int field = 1;
public int getField() {
return field;
}
public int getSuperParent() {
return super.field;
}
}
public class TestClass {
public static void main(String[] args) {
Parent p = new Sub();
System.out.println("field : " + p.field + " , getField : "
+ p.getField());
Sub s = new Sub();
System.out.println("field : " + s.field + " , getField : "
+ s.getField() + " , getSuperField : " + s.getSuperParent());
}
}
打印结果:
[b]field : 0 , getField : 1
field : 1 , getField : 1 , getSuperField : 0[/b]