多态的好处
- 提高了代码的维护性(继承保证)
-
案例演示
多态的弊端
案例演示
method(Animal a);method(Cat c);
```java public class Demo4_Animal { public static void main(String[] args) { // Cat cat = new Cat(); // cat.eat();
method(new Animal());method(new Cat());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
动物吃饭
猫吃鱼
抓老鼠
狗吃肉
看门
