Java的private成员变量的继承问题
Posted 一只鱼鱼鱼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java的private成员变量的继承问题相关的知识,希望对你有一定的参考价值。
java板块关于private变量到底会不会被继承,一直都有争议。
另一种说法是非继承关系,但是不能够解释为什么。
分析内存的分配后发现:
当一个子类被实例化的时候,默认会先调用父类的构造方法对父类进行初始化,即在内存中创建一个父类对象,然后再父类对象的外部放上子类独有的属性,两者合起来成为一个子类的对象。
虽然说子类对象内存空间包含这个private变量,但是子类不能自己编写函数对这个private变量进行直接修改,访问。只能通过继承下来的public函数对private变量进行修改,访问。
关于这些争议,最佳的解决办法是明白如何定义继承。。。
对于持非继承观点的人来说,继承下载的变量或方法必须得能够直接使用,即直接修改或访问。这是符合传统的继承概念。
对于持继承观点的人来说,因为子类内存中有private变量,即子类拥有private变量,它就应该是继承的。
对于这两种想法,都有一定道理,但是书上定义偏向于第一种,因此个人接受第一种的思想。
以上是关于Java的private成员变量的继承问题的主要内容,如果未能解决你的问题,请参考以下文章