码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA多态

时间:2016-10-15 19:31:03      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

饲养员Feeder 食物Food和动物Animal及它的子类的类框图

可以把Feeder Animal 和Food都看成独立的子系统

Feeder类定义:

public class Feeder{
    public void feed{Aniaal animal.Food food}{
    animal.eat(food);
    }
}

演示了一个饲养员分别给一只狗喂狗骨头 给一只猫喂鱼

Feeder feeder=new Feeder();
Animal animal=new Dog();
Food food=new Bone();
feeder.feed(animal.food);//给狗喂肉骨头
animal=new Cat();
food=new Fish();
feeder.feed(animal.food);//给猫喂鱼

以上animal变量被定义为Animal类型 但实际上有可能引用Dog或Cat的实例
在Feeder类的feed()方法中掉用animal.eat()方法 一会变成猫一会变成狗这

个是多态的字面含义

  Java语言允许某个类型的引用变量引用子类的实例 而且可以对这个引用变量进行数据转换

Animal animal=new Dog();
Dog dog=(Dog)animal;
Creature creature=animal;


类型转换

技术分享

在Sub类中海定义了实例变量subVar和subMethod()

技术分享技术分享

 

JAVA多态

标签:

原文地址:http://www.cnblogs.com/wdas-87895/p/5964920.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!