多态

多态是同一个行为具有多个不同表现形式或形态的能力。就是同一个接口,使用不同的实例而执行不同操作。

  • 多态存在的三个必要条件:
    继承
    重写
    父类引用指向子类对象
    例如:

     Pet pet = new dog();
    

当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。

多态的好处:可以使程序有良好的扩展,并可以对所有类的对象进行通用处理。
实例:
定义宠物类Pet:

public abstract class Pet {
	public void eat() {
	}
}

新建类Dog,继承Pet:

public class Dog extends Pet{
	public void eat() {
		System.out.println("狗狗吃饭中!");
	}
}

新建类Penguin,继承Pet:

public class Penguin extends Pet{
	public void eat() {
		System.out.println("企鹅吃饭中!");
	}
}

新建类Master,负责给宠物喂食,并执行喂食操作:

import java.util.Scanner;
public class Master extends Pet{
	public void eat(Pet pet) {
		pet.eat();
	}
	public void feed(Pet pet) {
		pet.eat();
	}
	public Pet getPet(int typeId) {
		Pet pet = null;
		if(typeId == 1) {
			pet = new Dog();
		}else if(typeId == 2) {
			pet = new Penguin();
		}
		return pet;
	}
	public static void main(String[] args) {
		Dog dog = new Dog();
		Penguin pgn = new Penguin();	
			
		Master master=new Master();
		master.feed(dog);//主人给狗狗喂食
		master.feed(pgn);//主人给企鹅喂食
	  }
}

输出结果:
在这里插入图片描述

©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页