本帖最后由 杨同旺 于 2013-4-20 14:05 编辑
new任何一个子类的时候,肯定是先new的其父类,
所以只要是new了,肯定在内存中已经生成了父类的对象和子类的对象,
以上会产生多态的现象,但是多态是专门针对成员函数而言的,成员变量并没有多态的现象,这是一个规则,不管静态不静态,
既然类的成员变量不会产生多态的现象,所以成员变量只好重写,以上写法Fu f=new Zi()显然还是多态的写法,不产生成员变量多态的现象,应该这样:
Zi z = new Zi();
System.out.print(z.a);
只有这样,才能调到子类中的成员变量.
子类的对象在内存中生成后,只要子类对象存在,父类的对象也不会被垃圾回收. |