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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

毕老师说多态是一中事物的不同表现形态,太抽象了。
你们有没有好点的例子和定义列举列举啊,求详细和全面。谢谢

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 淡定

查看全部评分

6 个回复

倒序浏览
本帖最后由 高亮亮 于 2014-1-14 10:24 编辑

一犬类,继承了动物类,实现了导盲接口.
情况一: 哥们,给我来一个动物--->送上该狗一条.
情况二: 哥们,给我来一个能导盲的--->送上该狗一条.

这两种情况,第一种,是将该狗看成一个动物,匹配所需.
第二种情况,则是将该狗看成一个可以导盲的东西,匹配所需.

不知道我这样理解能不能帮到楼主...
这样情况,分别就是Java多态中的:父类引用,指向子类对象的和父接口引用,指向子实现类对象的体现.

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 很给力!

查看全部评分

回复 使用道具 举报 1 0
       在处理类的层次结构时,经常想把一个对象不当做它所属的特定类型来对待,而是将其当做其基类的对象来对待(即所谓的向上转型或者向上抽取),这就是多态的思想


        其表现为,父类对象可以通过子类实例化,而不是由其自身的类实例化,即子类实例化对象可以转换为父类实例化对象,这就是对象的多态性

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 很给力!

查看全部评分

回复 使用道具 举报
例子 你要玩电脑 电脑被你爸爸锁了密码 你要进入电脑你是用你爸爸设置的密码 这就是多态了
你用你爸爸的密码进入的 你现在就是子类访问父类 .  
你爸爸用你爸爸设置的密码进入电脑.这时就是父类类型访问父类
public class computer


评分

参与人数 1技术分 +1 收起 理由
FFF + 1 淡定

查看全部评分

回复 使用道具 举报
定义:在同一类中或者在子类和父类中对同一方法的不同实现
分类:方法的重载和重写

重载:
在同一个类中或在子类和父类中具有相同名称,不能参数的方法的形式
调用:
通过参数类型和数量进行匹配

重写:
在子类和父类中存在具有相同的返回值、名称、参数列表的方法的形式
注意:
重写方法的可访问性不能低于被重写方法
调用:
看对象。对象是父类就调用父类的方法,对象是子类就调用子类的方法 。

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
public class 父子 {

        public static void main(String[] args) {
                子类型 子 = new 子类型();//创建子类型对象.
                父类型 父类型变量 = (父类型)子;//把子类型转成父类型.
                父类型变量.进入电脑();//调用父类型的进入方法.
                子类型 子类型变量 =(子类型)父类型变量;
        }

}
class 父类型
{
        public void 进入电脑(){
                System.out.println("父亲进入");
        }
}
class 子类型 extends 父类型{
        public void 进入电脑(){
                System.out.println("儿子进入");
        }
}

评分

参与人数 1黑马币 +3 收起 理由
FFF + 3 神马都是浮云

查看全部评分

回复 使用道具 举报 1 0
谢谢了 把你们的回答整合一下就差不多解决问了
大家主要说了两点:
1 是从定义入手
  引用四楼  
定义:在同一类中或者在子类和父类中对同一方法的不同实现
分类:方法的重载和重写

2 是从应用,和不同形态的体现入手
   就是大家举得例子和一些总结
   父类的引用指向了自己子类的对象(向上转型)
   父类的引用也可以接受自己的子类对象。
   还有一个事物在不同时刻表现的不同形态,就像上转型下转型等
  谢谢大家

评分

参与人数 1黑马币 +2 收起 理由
黄晓鑫 + 2

查看全部评分

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