日期:2014-05-20 浏览次数:20625 次
class Parent { int i = 3; void test() { System.out.println("Parent test()"); } } class Child extends Parent { int i = 5; void test() { System.out.println("Child test()"); } } public class HackersterTest { public static void main(String[] args) { Child c = new Child(); System.out.println(c.i);// 输出5 c.test();// 输出Child test() Parent p = c; System.out.println(p.i);// 输入3 p.test();// 输出Child test() } }
------解决方案--------------------
这是java多态的体现
要弄清楚编译期类型和运行时类型
就是说在编译的时候子类对象就被当做父类了,而在运行的时候就表现出子类的特性
编译的时候他只管能不能通过就成为编译其类型而运行的时候就是运行时类型