您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Java中关于对域与静态方法的访问不具有多态性的详解

2024/6/28 10:15:41发布16次查看
下面小编就为大家带来一篇基于java中对域和静态方法的访问不具有多态性(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
1.将方法调用同方法主体关联起来被称为
2.编译期绑定(静态)是在程序编译阶段就确定了引用对象的类型
3.运行期绑定(动态绑定)是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法
4.除了static方法和final方法(private方法属于final方法),其他所有方法都是后期绑定,java中所有的方法都是通过动态绑定来实现多态
5.访问某个域的行为不具有多态性
package polymorphism; class superfield { public int field = 1; public int getfield() { return field; } } class subfield extends superfield { public int field = 2; public int getfield() { return field; } public int getsuperfield() { return super.field; } } public class fieldpolymorphism { public static void main(string[] args) { superfield sup = new subfield(); system.out.println("sup.field = " + sup.field + ", sup.getfield() = " + sup.getfield()); subfield sub = new subfield(); system.out.println("sub.field = " + sub.field + ", sub.getfield() = " + sub.getfield() + ", sub.getsuperfield() = " + sub.getsuperfield()); } }
输出结果:
sup.field = 1, sup.getfield() = 2
sub.field = 2, sub.getfield() = 2, sub.getsuperfield() = 1
当subfield对象转型为super引用时,任何域访问操作都将由编译器解析,因此不是多态的,subfield实际包含两个称为field的域:自己的和从superfield处继承来的
通常将域设置成private,不能直接访问,也不能被继承,通过调用方法来访问
6.访问某个静态方法不具有多态性,不与单个对象相关联
package polymorphism; class super { public static string staticmethod() { return "super staticmethod()"; } } class sub extends super { public static string staticmethod() { return "sub staticmethod()"; } } public class staticpolymorphism { public static void main(string[] args) { super sup = new sub(); system.out.println(sup.staticmethod()); system.out.println(sub.staticmethod()); } }
输出结果:
super staticmethod()
sub staticmethod()
以上就是java中关于对域与静态方法的访问不具有多态性的详解的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product