1.Fu f = new Demo();父类引用指向子类对象,加载时,先加载父类对象,再加载子类的其它项,所以子类对象创建后相当于在内存中隐藏了一个父类的引用(super)对象.f指向的是隐藏的父类对象,但是子类中又复写了show方法,相当于把隐藏的父类方法替换掉了,所以调用的是复写的方法。
2.Fu f = new Zi();f指向的还是隐藏的super对象,但是,方法可以复写,属性是不能被复写的,所以,子类对象中隐藏super对象的属性与子类的其它属性是没有改变的,虽然都是变量num,f.num指的是隐藏的num,所以结果是4 |