Java基础要点——继承中的private

    这几天在看Java程序设计案例,总是弄不清楚继承关系中的private:为什么子类中无法直接调用private变量进行操作,而是要通过父类public方法进行操作。

    以前我对继承的理解是:子类与父类是分割开的,在子类实例化中,是完完全全的子类实例化,继承过程只是把父类的同名变量和方法复制给子类一份,避免子类代码的冗杂。

    查了一圈博客园找到了相关资料,找到了一句话:

当一个子类被实例化的时候,默认会先调用父类的构造方法对父类进行初始化,即在内存中创建一个父类对象,然后再父类对象的外部放上子类独有的属性,两者合起来成为一个子类的对象。

    不严谨的说,子类与父类相同的部分其实是属于父类的内存空间,在这上面的private成员,实际是属于父类的。子类要想调用这部分成员,必须经过父类的public方法进行操作。

    这种理解,也能帮助理解super关键字的作用:调用父类的内存空间进行操作。

引用来源:Java的private成员变量的继承问题 - FishLight - 博客园 (cnblogs.com)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容