java学习--多态

多态是指一个事物有不同的表现形式或形态。

例如:车是一个类,奔驰、宝马、奥迪是车的子类,虽然它们都属于车,但是也可以有各自不同的形状发动机等等

注:多态存在的三个必要条件:要有继承、要有重写、父类变量引用子类对象。父类的变量可以引用父类的实例,也可以引用子类的实例;但是反过来是错误的。

直接看代码:

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

猜你喜欢

转载自sls0919.iteye.com/blog/2409791