黑马程序员技术交流社区

标题: 多态 [打印本页]

作者: liuyong    时间: 2015-12-22 20:56
标题: 多态
多态:
     定义:同一对象在不同时刻表现出的不同状态。
     格式:Fu f = new (zi);
     前提条件:1.要有继承。
               2.要有方法重写。可以不重写,但是没有意义。
               3.父类引用指向子类对象。
     访问特点:
            变量:  编译:执行等号左边        运行:执行等号左边           特点:加载到堆内存中
            方法:  编译:执行等号左边        运行:执行等号右边           不调用不执行(因为运行时调的是堆中内容,故先访问的是等号右边内容)
            静态方法:编译和运行都执行的是等号左边;因为他是随类加载而加载,在对象创建前加载,与多态关系不大。
         总结:编译看左边,运行除方法看右边,其余都是看左边。
     好处:
        1.提高代码的维护性(由继承来保证)
        2.提高了代码的扩展性(由多态来保证)
     弊端:
        父类不能访问子类的特有功能。
    为了解决弊端的方法。
    向上转型:父类引用指向子类对象              自动转换
    向下转型:将一个父类引用转换成子类    格式:Zi z = (Zi)f; 前提:该父类引用必须是指向子类对象。    此时已不是多态。




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