前两个问题是一个问题:A:成员变量:编译和运行都看Fu和 B:非静态方法:编译看Fu,运行看Zi------------------------------首先你要理解多态的含义:(如果要讲多态的话估计一两天都能丢进去,多态的应用太广,太大,在这不扩展,楼主可以查看下)我在这讲我的理解:多态必须依靠继承关系,并且在“通用”情况下是由于有函数复写机制造成的。
好了,明白上面2点后,我们在来分析Fu f = new Zi();----------我们首先了解变量F到底是什么,我们把这句子分2段:Fu f;这是声明一个变量f为Fu这个类,那么我们知道了f肯定是Fu类。然后我们f=new Zi();中建立一个子类对象赋值给了f,结果是什么难??
结果是,拥有了被Zi类函数覆盖后的Fu类对象----f------。