黑马程序员技术交流社区

标题: 面向对象之-------多态 [打印本页]

作者: 男人你得有范    时间: 2014-8-22 22:38
标题: 面向对象之-------多态
多态--即事物存在的多种表现形式。还称为动态绑定。
    例如动物中猫、狗。
        猫这个对象对应的类型是猫类型 猫 X = new 猫();
    同时猫也是动物中的一种,也可以把猫称为动物。
        动物 Y = new 猫();
        动物是猫和狗具体事物中抽取出来的父类型。
        父类型引用指向了子类对象。

    (1)多态的体现形式
        a.父类的引用指向了自己的子类对象。
        b.父类的引用也可以接受自己的子类对象。
        如Animal a = new Cat();a指向了Cat对象。

    (2)多态的前提
        a.必须是类与类之间的关系,要么继承,要么实现。
        b.通常还有一个前提:存在覆盖。
     
    (3)多态的利弊
        利:多态的出现大大的提高了程序的扩展性。
        弊:虽然提高了扩展性,但是只能使用父类的引用访问父类的成员。
     上面的Animal a = new Cat();是一种类型提升,向上转型的操作。
        如果想要调用猫的特有方法时,可强制将父类的引用,转成子类类型,向下转型。
     注意:
        千万不要出现将父类对象转成子类类型的操作。我们能转换的是父类应用指向了自己的子类
        对象时,该应用可以被提升,也可以被强制转换。多态自始至终都是子类对象在做着变化。
作者: java--周群    时间: 2014-8-22 23:24
这里  只能使用父类引用访问父类的成员不对吧  如果多态只能访问父类的成员  那还要多态干什么呢
作者: 舍我其谁    时间: 2014-8-22 23:51
总结的不错,学习了
作者: 执笔梦    时间: 2014-8-23 10:56
看看...........
作者: wyf20106    时间: 2014-8-23 19:54
再次复习下
作者: liqiaohui    时间: 2014-8-23 20:33
学习下  
作者: fredlxy    时间: 2014-8-23 20:43
又复习了一遍,嘻嘻
作者: c19t043    时间: 2014-8-23 20:45
总结的不错
作者: —Jimmy—    时间: 2014-8-23 20:52
总结的还蛮好的,鼓励一下,多总结




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