现在的位置: 首页 > 综合 > 正文

什么是多态

2013年06月02日 ⁄ 综合 ⁄ 共 585字 ⁄ 字号 评论关闭

通过基类的方法, 展现出不同子类功能。这就是多态.

 

 

比方一下:

你和你朋友都是烟鬼,

某日,你没有带烟, 而你朋友有n种烟,

你说: 来根烟,

朋友给你一根;

你吸了一下,品出为白沙烟

你再要一根,

你吸了一下,品出这次是芙蓉王,

再要一根,

你吸了一下,品出这次是熊猫

...

上面描述的就是多态!

烟 a = 白沙
烟 b = 芙蓉王
烟 c = 熊猫

但发现没有, 仅仅通过"烟"基类, 引用到不同的具体类对象(各种品牌的烟韵味),

就能让你调用到不同的对象, 这就是多态.

而烟到你嘴里[此时你还没有发现是那种烟], 你仅仅凭借"吸"的动作(基类方法),就识别出来,到底是哪种烟对象

这就是多态的悬机.

多态须具备:

1. 基类 和各个子类

2. 基类的引用指向实例化的子类对象.

再举一个鸡的例子,

鸡是所有其它鸡的基类, 定义了一个方法shape(), 此方法能指明鸡的形态. 所有的子类[火鸡,山鸡,田鸡等],都有这个shape方法, 表明自己的形态,

如果用下面的方法定义我需要具体的鸡,

[基类 引用 =  实现类的对象]

for example:

鸡 a = new 火鸡();

鸡 a = new 田鸡();

鸡 a = new 山鸡();

鸡 a = new 母鸡();

当我使用的时候, 我采用 a 这个引用,

a.shape(), 就会得到鸡的形态.

如果我定义的是

鸡 a = new 火鸡();

那么a.shape得到的是火鸡的形态, 而不需要用具体的

火鸡 a = new 火鸡(); 再通过a.shape得到火鸡的形态

抱歉!评论已关闭.