`
sls0919
  • 浏览: 123280 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java学习--多态

    博客分类:
  • 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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics