通过父类引用指向子类对象,多态性的体现的两种情况
1.List l = new ArrayList();
当父类为接口,即父类的所有方法都是抽象方法,必须靠实例化子类来实现父类的方法,所以此时必须要用List l = new ArrayList()形式来实现父类中的方法
2.Parent p = new Son();
当父类为正常的类的时候,如果用父类引用指向子类对象,能调用的方法只能是父类中有的或者是子类重写父类的方法,而不能调用子类有的而父类没有的方法。
如果无论如何都只能调用父类中的方法
Parent p = new Son()和Parent p = new Parent()又有什么区别呢?子类中有的而父类中没有的方法又不能被调用..
看过最多的例子是Animal c = new Cat()和Animal d = new Dog(),我只明白了这样多态性方便程序维护比如再加入一个Animal t = new Tigger()可以直接加.
但是无论怎么该能调用的方法依然只是Animal类中的方法而已呀.又不能调用子类中特有的方法..实在搞不懂有什么用..求解答~(PS:我知道肯定有用,但是我就是被绕进去了出不来~求领路)