注册 登录
编程论坛 J2EE论坛

基础问题

lmh814645654 发布于 2010-10-27 20:59, 1299 次点击
请教类中的多态是怎样的一个概念??
11 回复
#2
hsh_19872010-10-27 21:37
多态就是一个物体有多种形态存在。。

比如说:那是一个人,那么是指小孩,女人,男人还是老人呢;这就是说这些人是人的几种存在形态
#3
maxliz2010-10-28 01:09
不要钻概念里不出来
很多概念都是炒出来的
多敲代码
#4
lmh8146456542010-10-28 19:13
回复 3楼 maxliz
可是代码很难了解啊??
#5
funword2010-10-29 07:20
    所谓多态性说简单点就是不同对象对同一方法的不同实现,举个简单的例子:定义了移动move()这个方法,在people这个对象里实现就用"走",在bird这个对象里实现就是"飞",在fish对象里实现就是"游"了。这个例子稍微有点抽象,再举个具体点的例子,
     定义一个求几何图形面积的方法:
                            float area(){return 0.0f;}。//注意,这里并没有具体实现,只是返回0因为还没有确定是                                                      //几何图形里的什么图形。还无法求面积。
     求圆面积时你就可以定义:
                           float area(){ return 3.1415926f*R*R; };
     求长方形面积时就定义:
                        float area(){ return W*H;}
     如果你是概念没理解透,我想通过这两个例子你应该理解了。
   
#6
funword2010-10-29 07:29
    所谓多态性说简单点就是不同对象对同一方法的不同实现,举个简单的例子:定义了移动move()这个方法,在people这个对象里实现就用"走",在bird这个对象里实现就是"飞",在fish对象里实现就是"游"了。这就是move()方法在不同对象里的不同实现。这个例子稍微有点抽象,再举个具体点的例子,
     定义一个求几何图形面积的方法:
                         float area(){return 0.0f;}。//注意,这里并没有具体实现,只是返回0因为还没有确定
                                                     //几何图形的具体形状,还无法求面积
     求圆面积时你就可以定义:
                           float area(){ return 3.1415926f*R*R; };
     求长方形面积时就定义:
                        float area(){ return W*H;}
     如果你是概念没理解透,我想通过这两个例子你应该理解了。

#7
jackieli20742010-10-29 09:08
就算要了解概念也得从代码出发,不然也是事倍功半。
#8
wdwy2772010-11-02 00:03
回复 6楼 funword
我是刚学JAVA还没有讲到多态性,但是我观察了这两个例子,我想说出我对多态性的看法,请高手为我点评下,就拿这个求面积的函数来说吧,给定一个函数,我们可以用这个函数求出多个图形的面积,而不仅仅局限与一个图形,多个图形求面积时,都共享这个函数,不知道我这两理解是不是正确,仅仅是我个人理解....请指教!!谢谢
#9
usermgr2010-11-12 18:22
多态,就是重载和重写.重载发生在一个类中.重写发生在子类,意思就是子类重写父类相同名称的方法.刚学语言有的东西,不必搞得那么清楚,只有知道怎么用就行了,有的问题你要想真正把它搞得很懂,短时间是不可能的,比如说接口,没有几年工作经验你根本不可能真正理解什么是接口,甚至有的人工作四,五年也没搞明白什么是接口,不要花太多时间去搞这些不容易搞懂的问题.
重载的特性,方法名相同.返回类型,传入方法的参数不同(包括个数和类型).
重写的特性,方法名相同,返回类型,参数均相同,必须发生在子类.
#10
贾文慧2010-11-16 16:27
好深奥
#11
maxliz2010-11-17 03:05
回复 8楼 wdwy277
知道怎么用就行了 实际工作中再慢慢体会
面试时用实例回答就可以应付了
#12
lvsuperman2010-11-20 19:47
例子代码和概念一起看。
1