黑马程序员技术交流社区
标题:
所谓的继承中的复写?
[打印本页]
作者:
shdosh
时间:
2015-8-21 19:56
标题:
所谓的继承中的复写?
我们所谓的复写,在内存中真的是子类把父类的方法覆盖了,内存中就没有父类汇总方法了吗?
我的看法是,不是这样的,例如Zi extends Fu,new Zi()创建子类对象时,子类和父类都加载进内存,在方法区中,是两块不同的空间,并且会在堆内存中有父类和子类的内存区域,所以才会super引用可以调用Fu中的方法,虽然并没有创建Fu的对象。
代码:
class Test
{
public static void main(String[] args)
{
Zi z = new Zi();
z.getNum();
Fu f = new Zi();
f.getNum();
}
}
class Fu
{
int num = 2;
void getNum(){
System.out.println("Fu num == "+num);
}
}
class Zi extends Fu
{
int num = 4;
void getNum(){
System.out.println("Zi num == "+num);
super.getNum();
}
}
复制代码
大家的看法如何。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2