2021-01-18

java中的多态

多态:多态是建立在继承和重写的基础上.
1.生活中多态的概念:同一种事物由于外界条件不同,而执行不同操作或产生不同状态.
2.程序中多态的概念:用父类或父接口作为数据类型,指向不同子类对象调用同一个方法,而执行不同操作.
多态的第一种应用:
用父类或父接口作为数据类型,创建不同子类对象,而执行不同操作.

//        多态的第一种应用
//        父类作为一种数据类型,创建子类对象
        Pet p1=new Cat();
        Pet d1=new Dog();
        p1.eat();
        d1.eat();

多态的第二种应用:
用父类或父接口作为方法的形参,实参传递子类对象,而执行不同操作

//        多态的第二种应用
//        父类作为方法的形参,实参传递子类对象
        Cat cat=new Cat();
        Dog dog=new Dog();
        Master master=new Master();
        master.feedPet(cat);
        master.feedPet(dog);
public class Master {
    public void feedPet(Pet p){
        System.out.println("主人在喂食");
        p.eat();
    }

多态的第三种应用:
用父类或父接口作为方法的返回值类型,实际返回一个子类对象

        /**
         * 多态的第三种应用,父类充当返回值类型,实际上返回一个子类对象
         */
//        创建master对象
        Master master = new Master();
        Pet p1=master.lookupPet("猫");
        p1.voice();
        Pet pet=master.lookupPet("狗");
        pet.voice();
//    父类作为返回值类型
    public Pet lookupPet(String name) {
        Pet p = null;
        if (name.equals("猫")){
            p=new Cat();
        }
        else if (name.equals("狗")){
            p = new Dog();
        }
        return p;
    }
上一篇:【算法题】04-猫狗队列


下一篇:继承