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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

为什么子父类中的成员变量只跟引用有关,跟对象没关?

6 个回复

倒序浏览
Java的跨平台性依赖于虚拟机,虚拟机的工作只是引用计算机资源来完成相关操作,

所以继承父类成员属性和成员方法,其实只是做引用操作运算来实现现实生活中的逻辑关系,这样

能大大提高运算效率,因此这里说的继承并不是说子类重新定义了自己的属性,它只是对父类成员

属性进行了引用,至于怎么引用,关键实在子类的构造方法流,当父类没有自己定义带参构造方法

时,子类若自己没引用父类的构造方法时都是默认第一行引用的是父类空参构造方法,相信许多人

会对super和this这两个关键字感到疑惑,其实这就是我们一直听别人说万物皆对象一个体现,super

代表父类,this代表子类,是直接把类当作一个对象来看待了,所以super可以直接调用父类的私

有成员,这里无论实例对象是直接由子类去创建还是还是根据多态引用父类实现,实例化对象的属性

都只是自己在堆内存里开辟空间独立存放的,无论引用哪一个,父类子类都只是实例对像的模板而已,

因此this和super的主要作用就是用来区分实例化对象究竟是用哪一种方式对自己的成员属性和方法

进行引用。这里的概念一定要区分开来。
之前回答过类似的问题,所以直接复制粘贴了{:3_56:},没那么多为什么的,它们都是根据需求演变而来。因为需求这样的输出所以制定的这样的规格格式。希望我的回答对你有帮助。
回复 使用道具 举报
Chans_宇 发表于 2015-5-1 17:15
Java的跨平台性依赖于虚拟机,虚拟机的工作只是引用计算机资源来完成相关操作,

所以继承父类成员属性和成 ...

大神,有时候,这个构造函数到底是什么,为什么有的时候类没有构造函数,看视频反倒更好用一些方法
回复 使用道具 举报
ninjaes 发表于 2015-5-1 17:38
大神,有时候,这个构造函数到底是什么,为什么有的时候类没有构造函数,看视频反倒更好用一些方法 ...

所有类没声明继承那个父类时都默认继承根类Object,所以它们的没写构造函数时默认构造函数是this(){};里面隐含了super(),再者俺也是初学者,不是不是大神,只是喜欢胡思乱想,爱转牛角尖琢磨事情……毕向东老师视频里有讲到:L
回复 使用道具 举报
Chans_宇 发表于 2015-5-1 18:41
所有类没声明继承那个父类时都默认继承根类Object,所以它们的没写构造函数时默认构造函数是this(){}; ...

额 我是想问这个构造函数到底是什么呀  认识的一直不深刻,
回复 使用道具 举报
ninjaes 发表于 2015-5-1 18:48
额 我是想问这个构造函数到底是什么呀  认识的一直不深刻,

我想是内存初始化引用,你若想问虚拟机的底层实现。。我不懂:L。
回复 使用道具 举报
ninjaes 发表于 2015-5-1 18:48
额 我是想问这个构造函数到底是什么呀  认识的一直不深刻,

我想是类在内存中初始化引用,你若想问虚拟机的底层实现。。我不懂:L。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马