黑马程序员技术交流社区
标题:
多态中静态函数的特点
[打印本页]
作者:
yanglfree
时间:
2013-9-7 13:49
标题:
多态中静态函数的特点
本帖最后由 yanglfree 于 2013-9-8 18:34 编辑
在多态中,静态函数的特点,无论编译和运行,都参考左边
现实中有什么例子么,这个好难理解
作者:
Bad_Boy
时间:
2013-9-7 14:57
在多态中成员的区别 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.玩游戏();
作者:
赵凯
时间:
2013-9-7 16:46
|-- 非静态成员变量的特点:
|-- 编译时期,参考引用型变量中,是否有这个变量
|-- 运行时期,参考引用型变量中的变量的值
|-- 静态成员患变量特点
|-- 编译时期,参考引用型变量中,是否有这个变量
|-- 运行时期,参考引用型变量中的变量的值
|-- 静态成员方法的特点
|-- 编译时期,参考引用型变量中,是否有这个方法
|-- 运行时期,参考引用型变量中的方法
|-- 非静态成员方法的特点
|-- 编译时期,参考引用型变量中,是否有这个方法
|-- 运行时期,参考子类对象中的方法
|-- 简单的说:
除了非静态成员方法以外,编译看左边,运行看左边
只有在非静态方法中,编译看左边,运行看右边
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2