A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© $love 中级黑马   /  2013-4-22 18:53  /  1869 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 $love 于 2013-4-22 20:12 编辑

各位大神!我不是太理解多态!麻烦各位给详细的说说呗!谢谢!

10 个回复

倒序浏览
多态意指相同的信息给予不同的对象会引发不同的动作称之
比如人(Person)这个类,而继承人这个类的有男人(Man)类和女人类(Woman)
并且同统一事件的响应方式不太一样,比如说他们的父类(Person)有个方法叫做speak()
但是男人执行speak()这个方法的时候声音洪亮,粗狂。而女人执行这个方法(speak)
的时候声音尖而且低沉,故称之为多台,在会所简单点,比如说USB可以给手机充电,
可以接鼠标,也可以接键盘,但是他们执行的动作(功能)不太一样,所以称之为多态。
回复 使用道具 举报
本帖最后由 殇_心。 于 2013-4-22 19:11 编辑

下面是我看视频时候自己记录下来的,推荐多看看毕老师的java基础视频:
多态:  可以理解为事物存在的多种体现形态
1, 多态的体现
        父类的应用指向了自己的子类对象,父类的引用可以接受自己的子类对象         
2, 多态的前提
        必须是类与类之间有关系,要么继承,要么实现
        存在覆盖
3, 多态的好处
        多态的出现提高程序的扩展性
4, 多态的弊端
    提高了扩展性,但是只能使用父类中的成员
举个实例吧:
比如说你定义一个猫对象。
猫  a = new 猫();
动物 a = new 猫();
2种都行,多态表现形式一种。
回复 使用道具 举报
{:soso_e126:}反复听老毕的视频啊,死活没搞懂吗
回复 使用道具 举报
多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
多态有两种表现形式:重载和覆盖
首先说重载(overload),是发生在同一类中。与什么父类子类、继承毫无关系。   
  标识一个函数除了函数名外,还有函数的参数(个数和类型)。也就是说,一个类中可以有两个或更多的函数,叫同一个名字而他们的参数不同。   
  他们之间毫无关系,是不同的函数,只是可能他们的功能类似,所以才命名一样,增加可读性,仅此而已!  
   
  再说覆盖(override),是发生在子类中!也就是说必须有继承的情况下才有覆盖发生。
  
  我们知道继承一个类,也就有了父类了全部方法,如果你感到哪个方法不爽,功能要变,那就把那个函数在子类中重新实现一遍。  
  这样再调用这个方法的时候,就是执行子类中的过程了。父类中的函数就被覆盖了。(当然,覆盖的时候函数名和参数要和父类中完全一样,不然你的方法对父类中的方法就不起任何作用,因为两者是两个函数,毫不关系)
回复 使用道具 举报
本帖最后由 陈雨 于 2013-4-22 20:18 编辑
聖手`书生 发表于 2013-4-22 19:39
反复听老毕的视频啊,死活没搞懂吗


.........
回复 使用道具 举报
$love 中级黑马 2013-4-22 20:15:21
7#
肖川 发表于 2013-4-22 19:09
多态意指相同的信息给予不同的对象会引发不同的动作称之
比如人(Person)这个类,而继承人这个类的有男人(Ma ...

Thanks!受教了!
回复 使用道具 举报
$love 中级黑马 2013-4-22 20:17:19
8#
殇_心。 发表于 2013-4-22 19:09
下面是我看视频时候自己记录下来的,推荐多看看毕老师的java基础视频:
多态:  可以理解为事物存在的多种 ...

Thank you very much !
回复 使用道具 举报
陈雨 中级黑马 2013-4-22 20:18:30
9#
多态其实就是子类想用父类的方法,直接拿过来用。省的你子类用方法时每次都写代码,毕老师举的例子就是动物的,当后期动物越来越多,每种动物都有eat()这个方法,你每种动物都写这个方法是不是很烦。用的时候,注意的地方就是,你想想对象调用方法的格式就很好懂了,格式:对象.方法()。多态时Fu f=new zi(),调用f.方法,这个方法不管子类有没有父类有就编译通过;父类子类都有,则子类复写父类的方法。大概就是这样。至于强转也是一样的道理,因为父类没有子类的方法,但是想调用子类的方法,所以必须将父类变成子类,才能调用。其他的要注意的毕老师的视频都写详细,现在不懂先放在这里,等学到后面,再回头看就一下懂了。
回复 使用道具 举报
$love 中级黑马 2013-4-22 20:18:44
10#
聖手`书生 发表于 2013-4-22 19:39
反复听老毕的视频啊,死活没搞懂吗

没有深入了解!
回复 使用道具 举报
$love 中级黑马 2013-4-22 20:19:39
11#
zZZ~~ 发表于 2013-4-22 19:57
多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活 ...

Thank you very much !
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马