2 llo3321 llo3321 于 2016.02.25 11:27 提问

JAVA多态和非多态有什么区别,觉得没有什么不同啊?

图片说明

7个回答

zrf1335348191
zrf1335348191   2016.02.25 13:00

多态是说,
1,假设有个球对象,有子类篮球,乒乓球,羽毛球,每个子类里覆写了父类的tostring方法。。
2,如果你创建三个球对象,分别用子类New出来,对象是球对象,然后去调用tostring方法,虽然都是球对象,但会去调用不同类中的tostring方法,这就是多态

bdmh
bdmh   Ds   Rxr 2016.02.25 11:28

你只是看到了结果的一样吧,你还是仔细看看面向对象的多态,查查多态的应用,深入理解下,最好结合一些实际例子,书上讲的太简单,根本没法让你理解多态

mouyong
mouyong 回复llo3321: 那是因为你没有正确的使用多态。所谓繁琐,你是指写代码的时候更繁琐么?如果是,那么你就完全没理解多态的目的是啥了
接近 2 年之前 回复
llo3321
llo3321 可是非多态可以实现和多态一样的功能,而且新增一个功能还更繁琐,那为何还要使用多态呢?
接近 2 年之前 回复
llo3321
llo3321 可是非多态可以实现和多态一样的功能,而且新增一个功能还更繁琐,那为何还要使用多态呢?
接近 2 年之前 回复
daweibalang717
daweibalang717   2016.02.25 11:46
wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.02.25 12:48

你应该先了解下多态的含义:对于相同类型的不同实现,该类型的行为是由具体指向的类型决定的。
比如,都是动物,都会有叫的行为,但是不同动物,叫的行为方式不同,这就是多态。这就对应着一种编程原则:面向抽象编程,定义变量时用抽象的类型,真正赋值的类型由客户端按照实际情况执行真实的实现类。

wojiushiwo945you
wojiushiwo945you 回复llo3321: 非多态,没听过这个概念啊。方法就有静态和非静态方法之说,而静态方法是没有多态这个概念的。
接近 2 年之前 回复
llo3321
llo3321 这些我都知道,你能说说多态能实现但非多态不能实现的功能呢?谢谢
接近 2 年之前 回复
sinat_31535993
sinat_31535993   Rxr 2016.02.25 14:11

你好像在说new子类就调子类的方法了,父类就没啥关系了,结果父类还要多写一个方法,直接在子类中写就好了,这样父类中就少写一个方法了。
你这个思想就是没有明白父类是干嘛的。什么是父类,父类就是提取相同元素而凝聚成的。
举个例子:父类动物有个描述的方法“它是一只强大的猛兽!”,当你在写子类时,对于老虎,狮子这种野兽来说,这个描述的正确的,那么你就没有必要去重写这个方法,那你在子类中就少写了2个方法。
父类主要就是来提取子类中某些共同的特性,以达到减少子类重复定义。如果每个类的特性都不一样,那就没有必要提前一个父类出来。
错误的例子:老鼠,老虎,老鹰,他们都有捕食这个方法,但他们每个捕食都是独特的,强行提取父类,只会造成你说的那样,多写一个父类和一个父类方法

beacon_2011
beacon_2011   Rxr 2016.02.25 17:39

允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式
他只是给你提供了这样一种性质,方便继承

enpterexpress
enpterexpress   2016.02.25 21:16
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!