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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yanglfree 中级黑马   /  2013-9-7 13:49  /  1131 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 yanglfree 于 2013-9-8 18:34 编辑

在多态中,静态函数的特点,无论编译和运行,都参考左边

现实中有什么例子么,这个好难理解

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

2 个回复

倒序浏览
在多态中成员的区别   Fu f = new  Zi();
          1 成员属性:
                编译的时候:看等号的左边,等号左边的类型中有没有相应的成员属性,有相应的属性编译通过
                运行的时候:看等号的左边, 等号左边的类型中有没有相应的成员属性,有相应的属性使用相应的属性
                总结:编译,运行都看左边
          2 成员方法
                编译的时候:看等号的左边,等号左边的类型中有没有相应的成员方法,有相应的属性编译通过
                运行的时候:看等号的右边,等号右边的类型中有没有相应的成员方法,调用右边的方法(前提:有方法的重写)
                                        没有调用父类中的方法。
            总结:编译看左边,执行看右边
          3 static 方法
                总结:编译,运行都看等号左边
这是曾经讲师举得例子,不错
举例:孔子装爹。

                孔子爹:教书() -- JavaSE, age:40
                孔子:教书() -- 论语, 玩游戏(), age:20

                //多态体现
                孔子爹 k爹 = new 孔子(); //孔子就穿上爹的衣服,带上爹的眼镜,沾上胡子。 向上转型

                k爹.教书(); -- 论语
                sop(k爹.age); -- 40
                //k爹.玩游戏(); -- 不能调用。多态的弊端:不能使用子类的特殊方法。

                //回家了
                //孔子 k = new 孔子();
                //k.玩游戏();
               
                孔子 k = (孔子)k爹; //脱下爹的衣服,去除眼镜,去掉胡子 向下转型
               
                k.教书(); -- 论语
                sop(k.age); -- 20

                //为什么要使用向下转型:就是为了使用子类的特殊功能
                k.玩游戏();

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

回复 使用道具 举报
|-- 非静态成员变量的特点:
    |-- 编译时期,参考引用型变量中,是否有这个变量
    |-- 运行时期,参考引用型变量中的变量的值

  |-- 静态成员患变量特点
    |-- 编译时期,参考引用型变量中,是否有这个变量
    |-- 运行时期,参考引用型变量中的变量的值

|-- 静态成员方法的特点
    |-- 编译时期,参考引用型变量中,是否有这个方法
    |-- 运行时期,参考引用型变量中的方法

|-- 非静态成员方法的特点
    |-- 编译时期,参考引用型变量中,是否有这个方法
    |-- 运行时期,参考子类对象中的方法

|-- 简单的说:
   除了非静态成员方法以外,编译看左边,运行看左边
   只有在非静态方法中,编译看左边,运行看右边

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

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