本帖最后由 barlay 于 2013-12-14 10:45 编辑
多态的前提是继承,比如类Dog extends Animal,然后在Dog中复写了Animal中的eat()方法,问题就来了,到底Dog类有没有真正覆盖Animal中的方法呢?
自己写代码测试了一下,在Dog中通过super.eat()访问的是Animal中的方法,说明子类Dog没有复写Animal中的方法,但是通过泛型:Animal a = new Dog(); a.eat();这时访问的是Dog中复写的eat()方法。问题是方法复写到底是怎么复写的,改变了什么地方?而在子类中通过super访问的话就没有改变?
|