• Java的private成员变量的继承问题


    java板块关于private变量到底会不会被继承,一直都有争议。

      传送门

    另一种说法是非继承关系,但是不能够解释为什么。

    分析内存的分配后发现:

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

      

      虽然说子类对象内存空间包含这个private变量,但是子类不能自己编写函数对这个private变量进行直接修改,访问。只能通过继承下来的public函数对private变量进行修改,访问。

      关于这些争议,最佳的解决办法是明白如何定义继承。。。

      对于持非继承观点的人来说,继承下载的变量或方法必须得能够直接使用,即直接修改或访问。这是符合传统的继承概念。

      对于持继承观点的人来说,因为子类内存中有private变量,即子类拥有private变量,它就应该是继承的。

      

      对于这两种想法,都有一定道理,但是书上定义偏向于第一种,因此个人接受第一种的思想。

  • 相关阅读:
    2019/10/9 CSP-S 模拟测
    简单的面向对象
    魔术变量
    函数
    全局变量
    超级全局变量
    for循环
    while循环
    php数组排序
    python打造XslGenerator
  • 原文地址:https://www.cnblogs.com/yulianggo/p/10417229.html
Copyright © 2020-2023  润新知