黑马程序员技术交流社区

标题: 怎么理解多态 [打印本页]

作者: zhaokun    时间: 2016-9-22 21:21
标题: 怎么理解多态
多态感觉好复杂,看视频看的迷迷糊糊的
作者: Fate_stay    时间: 2016-9-22 21:43
1.父类引用,接收子类对象的用法:
(多态的体现:参数是父类类型,接收子类对象,执行时调用子类方法)
在调用方法时体现

                                                        1、父类做参数,接收子类对象
                                                        例: method(Fu f) --> method(apple)
                                                       
                                                        2、子类,作为返回值
                                                        例:public 子类 method(){..return 子类;}
                                                                Fu f = 子类;
                                                       
                                                        3、 // 实际传的是子类对象的地址值
                                                        例: Fu f = new Zi();
                                                       
                                                        4、接口的子类,就是它的实现类
作者: Fate_stay    时间: 2016-9-22 21:47
多态嘛,字面上的理解就是: 一个对象,有多中形态,比如: 一个学生,它属于 学生 这个类, 同时 也属于 人 这个类,因此人这个类可以作为学生这个类的父类,
创建对象的时候可以:
Person student = new Student(); // 这里Person是Student的父类
上面的例子就是一个 多态的体现
作者: fiendGG    时间: 2016-9-22 21:51

        (1)同一个对象,在不同时刻表现出来的不同状态。
               
                       
        (2)前提:
                A:有继承或者实现关系。
                B:有方法的重写。
                C:有父类(接口)的引用指向子类对象。
        (3)多态中的成员使用特点:
                Fu fz = new Zi();
                多态时,所有表现形式都是父类的表现形式,
                只有调用方法时,运行的是子类重写的方法
                A:成员变量
                        编译看左边,运行看左边。
                B:成员方法
                        编译看左边,运行看右边。
作者: 17721165644    时间: 2016-9-22 21:59
子类重写父类的方法后,用父类的引用调用方法时,编译时只做排错处理并将源码转化为字节码文件,所以只查看父类有没有这个要调用的方法,有就通过编译。运行时再根据引用指向的对象所属的实际类来决定调用那个类中的方法
作者: u8u8u80pp    时间: 2016-9-22 22:11
一样啊,今天学完感觉一脸懵逼
作者: u8u8u80pp    时间: 2016-9-22 22:12
一样啊,今天学完感觉一脸懵逼




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2