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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© liuyong 中级黑马   /  2015-12-22 20:56  /  354 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马