当前位置: 首页 > news >正文

郴州网站建设公司哪家好设计教育培训

郴州网站建设公司哪家好,设计教育培训,php源码网站安装,郑州男科Kotlin是一个宣称与Java兼容性较好的语言#xff0c;但在接触后发现一些技术还是有“概念上”的冲突#xff0c;本文就记录下两者对象的Field#xff08;中文的说法有字段、域、属性、成员变量#xff0c;下文若出现这些表达#xff0c;指的都是这个东西#xff09;在继承…Kotlin是一个宣称与Java兼容性较好的语言但在接触后发现一些技术还是有“概念上”的冲突本文就记录下两者对象的Field中文的说法有字段、域、属性、成员变量下文若出现这些表达指的都是这个东西在继承中的不同表现。 Java中Field在继承中的表现 首先来看一段简单的程序 public class FieldInheritDemo {public static void main(String[] args) {Child child new Child();Parent parent child;System.out.println(child.a - parent.a);// 8-1child.a 88;System.out.println(child.a - parent.a);// 88-1parent.a 11;System.out.println(child.a - parent.a);// 88-11System.out.println(child.b - parent.b);// 9-2child.b 99;System.out.println(child.b - parent.b);// 99-2 // parent.b 22; //error: 不能对final变量赋值parent.printParent();// 11-2-11-2-88-99child.printChild();// 88-99-88-99-11-2} }class Parent {public int a 1;public final int b 2;public void printParent() {System.out.println(a - b - this.a - this.b - ((Child) this).a - ((Child) this).b);} }class Child extends Parent {public int a 8;public int b 9;public void printChild() {System.out.println(a - b - this.a - this.b - super.a - super.b);} } 从输出结果来看Java的域有“遮蔽”的现象但是没有“覆盖”或“重写”的现象。具体引用的是父类的域还是子类的域取决于变量的类型而非对象的实际类型。this虽然是动态变量但是在Parent中它仍然是this。 Kotlin中Field在继承中的表现 同样来看一段和上面相似的程序 fun main(args: ArrayString) {val child: Child Child()val parent: Parent childprintln(${child.a}-${parent.a})// 8-8child.a 88println(${child.a}-${parent.a})// 88-88parent.a 11println(${child.a}-${parent.a})// 11-11println(${child.b}-${parent.b})// 9-9child.b 99;println(${child.b}-${parent.b})// 99-99 // parent.b 22; //error: 不能对val变量赋值parent.printParent()// 11-99-11-99-11-99child.printChild()// 11-99-11-99-1-2 }open class Parent {open var a: Int 1open val b: Int 2fun printParent() {println($a-$b-${this.a}-${this.b}-${(this as Child).a}-${(this as Child).b})} }class Child : Parent() {override var a: Int 8override var b: Int 9;fun printChild() {println($a-$b-${this.a}-${this.b}-${super.a}-${super.b})} }Kotlin中的输出结果来看“遮蔽”、“覆盖”现象都存在跟方法一样其实只要看字节码就可以发现对Field的读写都是调方法比如child.a 88这行字节码中就包含INVOKEVIRTUAL Parent.setA (I)V。 但是Kotlin中有两个需要注意的点 super的行为还是和Java类似并非Parent.setA之类的过程调用。当open和val同时修饰一个域的时候这个域可能会变例如上面parent.b我们没法对其赋值但是它的值却一直在变。没错不可变的值看上去变了。。。我很不喜欢这点设计用的时候当心
http://www.yingshimen.cn/news/63090/

相关文章:

  • 网站域名如何更换wordpress h5自适应
  • jsp系统网站建设带源代码北京有哪些炫酷的网站页面
  • 360网站seo怎么做申请免费空间
  • 楚州网站开发上海ktv目前营业情况
  • 深圳华汇设计长春seo网站优化
  • ico网站图标wordpress所有版本
  • 网站建设费用清单多商户开源商城
  • 长沙网站建设外包企业网站规划与设计
  • 浪琴女士手表网站免费的小程序模板网站
  • 阿里巴巴的网站流程个人网站要求
  • 北京网站建设公司分形科技河北住建城乡建设网站
  • 外贸网站示例企业官网首页模板
  • 凌源市建设局网站青岛上市公司网站建设
  • 企业网站每年的费用怎么做百度网站验证码
  • 想给公司注册一个网站猎头公司是什么
  • 课题组研究网站怎么做丹阳高铁站对面的规划
  • 网站视觉vultr宝塔wordpress
  • 做商城网站带宽wordpress 去除logo
  • 比较好的网页网站设计企业营销网站建设策划书
  • 品牌高端网站制作python 网站开发实例
  • 泉州网站关键词优化华夏名网网站建设教程
  • 网站开发ios免费ppt成品网站
  • 做断桥铝最知名的网站建设企业网站技术解决方案
  • 昆山做网站公司全国蔬莱网站建设
  • 邯郸网站建设效果好工业智能科技网站设计
  • 网站开发谷歌浏览器js不更新兰州专业网站建设公司
  • 景安网站备案的服务码美食网站建设前的市场分析
  • wordpress加密修改密码seo网站关键词优化多少钱
  • 台州椒江区热销企业网站搭建谷歌竞价广告
  • 跳转网站代码网站开发实战asp制作视频教程