定义一个动物类作为父类
public class Animal {
public void eat(){
System.out.println("动物吃东西");
}
}
猫类
public class Cat extends Animal{
public void eat(){
System.out.println("猫吃鱼");
}
}
狗类
public class Dog extends Animal {
public void eat() {
System.out.println("狗吃肉");
}
}
创建一个吃的操作类
public class AnimalOperator {
// public void userAnimal(Cat cat){ //相当于 Cat cat=new Cat()
// cat.eat();
// }
// public void userAnimal(Dog dog){//相当于 Dog dog=new Dog()
// dog.eat();
// }
// 但如果有多个动物,就需要逐个添加,这样会影响效率,so我们可以直接调用动物类-->
public void userAnimal(Animal animal){//相当于 Animal animal=new Animal()
animal.eat();
}
}
用测试类看效果
public class Demo {
public static void main(String[] args) {
<!-- 1、创建一个动作类的对象-->
// AnimalOperator ao = new AnimalOperator();
<!-- 调用操作类的方法 ao.userAnimal() 调用对象cat 的动作-->
// Cat cat = new Cat();
// ao.userAnimal(cat);
<!-- 2、 创建子类,用对象直接调用动作类-->
Cat cat = new Cat();
cat.eat();
Dog dog = new Dog();
dog.eat();
}
}
运行结果

要点:
多态的好处:提高了程序的扩展性
具体体现:定义方法的时候,使用父类型作为参数,将来在使用的时候,使用具体的子类型参与操作
多态的弊端:不能使用子类的特有功能。