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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 「青春」zāI路 中级黑马   /  2013-9-8 16:43  /  1934 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 「青春」zāI路 于 2013-9-11 09:21 编辑

怎样理解java中的多态?从哪些方面表现出来的?

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

13 个回复

倒序浏览
这样的问题  看视频吧 太笼统
回复 使用道具 举报
楼上说的对啊,多看几遍就会更理解的。如果真的就看了一遍的话,好像懂了,又好像不太明白。反正我是这样的。说不明白吧,我有说不出来我究竟是哪里不懂。连问都不知道该怎么问的。所以。多来几遍,至少知道也会知道哪里不清楚。。。。哈哈  其实 多看看就懂了
回复 使用道具 举报
猫既是猫类,也是动物类,可以理解吧
回复 使用道具 举报
多态也是java的一个很重要的部分,就是一个方法名可以用多次,具体根据参数的不同来分辨你调用哪个方法,通俗的解释多台就是,假如有个方法名叫:“动物的叫声” 那么,当你传递的参数是动物狗,则调用狗叫声,是猫,则调用猫叫声,这就是多态。
回复 使用道具 举报
毕老师讲的:
多态:可以理解为事物存在的多种体现形态。
1、多态的体现
父类的引用指向了自己的子类对象。
父类的引用也可以接收自己的子类对象。
2、多态的前提
必须是类与类之间有关系。要么继承,要么实现。
通常还有一个前提:存在覆盖。
3、多态的好处
多态的出现大大的提高程序的扩展性。
4、多态的弊端:
提高了扩展性,但是只能使用父类的引用访问父类中的成员。
举个例子来说:假如有个方法名叫:“动物的叫声”那么,当你传递的参数是动物狗,则调用狗叫声,是猫,则调用猫叫声,这就是多态。

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

回复 使用道具 举报
继承多态
对象多态:一个对象具有多种形态
在进行多态形式的程序编程中
编译期检测的是对象所具有的形态是否可以完成对应的任务
执行期是具体的对象去完成任务

编译期检测的是执行操作的对象对应的类型是否合理
运行期执行程序一定是对象在执行,对象执行的操作先使用自己定义的操作,如果
找不到,才使用父类定义的操作

  1. abstract class Animal{                                //抽象类 动物
  2. abstract void eat();
  3. abstract void sleep();
  4. }
  5. class Cat extends Animal{                       //猫子类继承至动物类
  6. void sleep(){
  7. }
  8. void eat(){
  9. }
  10. }<p>class AbstractClassDemo{
  11. public static void main(String[] args){
  12.   Animal a = new Cat();                    //一个动物类   对象 为猫。
  13.   a.eat();
  14. }
  15. }</p>
复制代码

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

回复 使用道具 举报
谈多态,必须是在继承的基础上而言的,
父类引用指向子类对象是多态的一大特征
回复 使用道具 举报
我们老师上课讲的:
在继承关系中,一个子类对象不仅具有其本身类所具有的形态,还具有其父类对象所具有的形态,该对象具有多种形态,这种现象叫做多态。
回复 使用道具 举报
楼主,你好,如果您的问题解决了!


请把您问题的未解决更改为已解决

谢谢合作!


回复 使用道具 举报
mf152 中级黑马 2013-9-10 00:40:53
11#
      多态体现在继承中,所以需要有继承关系,然后子类要重写父类方法,最后父类
指向子类(父类本身具有一些方法,这些方法被子类重写了,但调用这些方法时,
会自动调子类重写的那些)。

回复 使用道具 举报
杨增坤 发表于 2013-9-9 19:40
楼主,你好,如果您的问题解决了!

请把您问题的未解决更改为已解决!

找了许久,请问哪里更改?
回复 使用道具 举报
额。。。这个问题。。。。
最常用就是父类的引用指向子类对象实例吖。。。。。。。。。
Object obj=new Person();之类的的。。。。
毕老师那个sop();方法记得不?
void sop(Object obj)
{
     System.out.println(obj);  
}
Object超类中有共性方法toString();
所以无论传进来的是什么最后都被提升为Object这个父类,然后打印


更改  已解决?   
1.在自己贴内对着自己的问题,点击  编辑
2.将问题类型  改成  已解决
3.点击 保存
回复 使用道具 举报
「青春」zāI路 发表于 2013-9-10 16:25
找了许久,请问哪里更改?

你参考一下这里就明白了:点击
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马