System.out.println(f.num); *请问这个为什么打出来是4
System.out.println(z.num);
f.show();
z.show();
}
}
*
Fu f=new Zi();
因为f是Fu类型,所以看不到Z的成员。
如果是
System.out.println(((Z)f).num);
则输出5
成员变量没有“覆盖”一说。
昨晚下班之后,以前的大学同学,叫我开黑去了,hhhhhhh~,没注意你的消息,原来让我来回答这个问题233333
在java中,通常属性是没有多态这个概念的,不仅是成员变量,还有静态方法。
意思就是,如果你这个num,是通过静态方法来获取的话,那么依旧是父类的静态方法来为你提供返回值,而不是子类
除了成员变量和静态方法以外,普通的方法,就是执行子类的方法了,如果你不想要父类的成员变量,想要子类的,那么可以通过子类的get方法来获取,前提是你要写了get、set方法23333
通过f.getNum()来获取子类的成员变量的值
希望能够帮助你理解~