标签:
饲养员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()
标签:
原文地址:http://www.cnblogs.com/wdas-87895/p/5964920.html