本帖最后由 long 于 2013-5-13 17:30 编辑
因为类中的字段是不存在复写的,多态只能应用于被复写的方法,不能应用于字段,父类与子类的同名字段在内存中占有不同的内存空间。子类对象其实包含了一个父类对象。只要父类对象的字段不是用private修饰的,就可以在子类对象中访问。
Fu f = new Zi();
f 虽然指向一个子类的对象,但它是一个父类的引用,f.num 自然指的是父类中的字段num。((Zi)f).num 表示的才是子类对象的num,本例中等于z.num, 也就是5。 |