Java 多态中的操作类

97 阅读1分钟

定义一个动物类作为父类

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();
    }
}

运行结果

夺

要点:

多态的好处:提高了程序的扩展性

具体体现:定义方法的时候,使用父类型作为参数,将来在使用的时候,使用具体的子类型参与操作

多态的弊端:不能使用子类的特有功能。