例如以下一道面试题:
package com.evan; public class ChildClass extends ParentClass { public int i = 30; public static void main(String[] args) { ParentClass pc = new ChildClass(); ChildClass cc = new ChildClass(); System.out.print(pc.i + cc.i); } } class ParentClass { public int i = 10; }
输出是20。40。60哪一个呢?结果是:40
我们都知道对于继承的话都是父类引用指向子类对象。调用方法时是动态调用子类的方法。假设实现了重写。
但是对于属性不是。你声明是什么对象,属性就是归属于声明的对象,而遇实际对象无关。这个在项目中须要注意,也就是说类的属性不存在重写。