多态的好处

  1. 提高了代码的维护性(继承保证)
  2. 提高了代码的扩展性(由多态保证)

    案例演示

    多态的好处
    可以当作形式参数,可以接收任意子类对象

    多态的弊端

    不能使用子类的特有属性和行为

    案例演示

    1. method(Animal a);
    2. method(Cat c);

    ```java public class Demo4_Animal { public static void main(String[] args) { // Cat cat = new Cat(); // cat.eat();

    1. method(new Animal());
    2. method(new Cat());
    3. method(new Dog());

    }

    public static void method(Animal animal){

     animal.eat();
     if(animal instanceof Cat){
         Cat cat = (Cat)animal;
         cat.catchMouse();
     }else if(animal instanceof Dog){
         Dog dog = (Dog)animal;
         dog.lookDoor();
     }
    

    } }

class Animal{ public void eat(){ System.out.println(“动物吃饭”); } }

class Cat extends Animal{ @Override public void eat() { System.out.println(“猫吃鱼”); } public void catchMouse(){ System.out.println(“抓老鼠”);

}

}

class Dog extends Animal{ @Override public void eat() { System.out.println(“狗吃肉”); } public void lookDoor(){ System.out.println(“看门”); } }

```java
动物吃饭
猫吃鱼
抓老鼠
狗吃肉
看门