多态是指一个事物有不同的表现形式或形态。
例如:车是一个类,奔驰、宝马、奥迪是车的子类,虽然它们都属于车,但是也可以有各自不同的形状发动机等等
注:多态存在的三个必要条件:要有继承、要有重写、父类变量引用子类对象。父类的变量可以引用父类的实例,也可以引用子类的实例;但是反过来是错误的。
直接看代码:
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