多态是指一个事物有不同的表现形式或形态。
例如:车是一个类,奔驰、宝马、奥迪是车的子类,虽然它们都属于车,但是也可以有各自不同的形状发动机等等
注:多态存在的三个必要条件:要有继承、要有重写、父类变量引用子类对象。父类的变量可以引用父类的实例,也可以引用子类的实例;但是反过来是错误的。
直接看代码:
public class Demo { public static void main(String[] args){ // 借助多态,主人可以给很多动物喂食 Master ma = new Master(); ma.feed(new Animal(), new Food()); ma.feed(new Cat(), new Fish()); ma.feed(new Dog(), new Bone()); } } // Animal类及其子类 class Animal{ public void eat(Food f){ System.out.println("我是一个小动物,正在吃" + f.getFood()); } } class Cat extends Animal{ public void eat(Food f){ System.out.println("我是一只小猫咪,正在吃" + f.getFood()); } } class Dog extends Animal{ public void eat(Food f){ System.out.println("我是一只狗狗,正在吃" + f.getFood()); } } // Food及其子类 class Food{ public String getFood(){ return "事物"; } } class Fish extends Food{ public String getFood(){ return "鱼"; } } class Bone extends Food{ public String getFood(){ return "骨头"; } } // Master类 class Master{ public void feed(Animal an, Food f){ an.eat(f); } }
本文示例参考自:http://www.weixueyuan.net