本帖最后由 想飞的鱼 于 2014-6-12 23:59 编辑
根据你的问题写了个小代码说明一下:
- /*
- 说明多态
- 在多态的体现当中,父类的引用也可以接收自己的子类对象是什么意思?
- */
- abstract class Animal
- {
- abstract public void eat();
- public void sleep()
- {
- System.out.println("闭眼睡觉");
- }
- }
- class Dog extends Animal
- {
- public void eat()
- {
- System.out.println("吃骨头");
- }
- }
- class Cat extends Animal
- {
- public void eat()
- {
- System.out.println("吃鱼");
- }
- }
- class DuoTaiDemo
- {
- public static void main(String[] args)
- {
- eat(new Dog());
- eat(new Cat());
- }
- /*
- 需要一个动物,但是给了一个狗接收进来也是可以啊,
- 当然,这里有个类型提升,狗提升为动物,如果要使用狗的特有方法,则要强转一下,一般用到instanceof先判断一下
- */
- public static void eat(Animal a)//相当于:Animal a = new Dog(); 即是父类引用接收了一个子类对象。
- {
- a.eat();
- }
- }
复制代码 |