返回列表 发帖

[基本语法] 多态到底是怎么回事

书上说“如果编译时类型和运行时类型不一致,就会出现多态。”但是我记得以前不是这样记的,现在迷迷糊糊的,希望谁能用比较容易理解的语句说说多态。

多态

多态就是同一类型的不同变量,调用同一方法时,得到不同的返回值,或不同的行为!

TOP

当不同的变量调用同一方法时,需要根据实际的变量类型决定,其变量类型应该是由"new"决定的,也可间接的由"="决定!~不知道说的对不对呢!~
众里寻她千百度,蓦然回首,那人却在灯火阑珊处!~

TOP

关于多态,我上课时是这么解释的,不过我不能把它写在书上,否则会有人骂我的。
首先,我们看“态”这个词怎么解释:所谓态,指的应该是行为特征。
比如我们常常说的"变态",如果我要大家给这个词下一个定义,应该如何定义呢?
我的定义是:相同类型对象,在做同一件事情时,呈现出与众不同的行为特征,这就是变态——比如大家外出时都应该穿上衣服,但有一个人(相同类型的对象),外出(做同一件事情时)时没穿衣服(不同的行为特征)——这就是叫裸奔,也就是变态了;与之相反,大家冲凉时都不会穿上衣服,但如果有一个人(相同类型的对象),冲凉时(做同一件事情时)时穿上了衣服(不同的行为特征)——这也是变态了。

与之对应的是:多态的定义:相同类型的不同对象,在调用同一个方法时(做同一件事情)时,呈现出多种行为特征,这就是多态。
例如如下代码
  1. Animal a1 = new Person();
  2. Animal a2 = new Fish();
  3. a1.swimming();
  4. a2.swimming();
复制代码


上面代码中a1、a2都是Animal类型的对象,都在调用swimming()方法——但执行a1、a2的方法时,
它们实际表现出Person、Fish的行为特征,也就是有两种行为特征,这就是多态。
生命没有假期!
如果生命只剩下最后一秒,你可会想到我?

TOP

TOP

TOP

回复 4# kongyeeku 的帖子

我之前也不是懂这个问题,现在看了李刚老师的再次讲解,明白了

TOP

TOP

TOP

TOP

返回列表