父类中的私有变量
Posted
技术标签:
【中文标题】父类中的私有变量【英文标题】:Private variables inside a parent class 【发布时间】:2018-09-06 00:31:16 【问题描述】:所以在我老师给我的代码中,它让孩子调用一个从私有数组返回值的方法。
我的问题是,子类可以从父类看到什么?它可以看到所有的公共方法和变量,而没有看到私有变量吗?
class Polygon
private int[] sideLengths;
public Polygon(int sides, int ... lengths)
int index = 0;
sideLengths = new int[sides];
for (int length: lengths)
sideLengths[index] = length;
index += 1;
public int side(int number)
return sideLengths[number];
public int perimeter()
int total = 0;
for (int index = 0; index < sideLengths.length; index += 1)
total += side(index);
return total;
class Rectangle extends Polygon
public Rectangle(int sideone, int sidetwo)
super(4, sideone, sidetwo, sideone, sidetwo);
public int area()
return (side(0)*side(1));
class Square extends Rectangle
public Square(int sideone)
super(sideone, sideone);
【问题讨论】:
这取决于您使用的语言。 通常是公开的和受保护的。 ***.com/questions/860339/… 这是java,所以你需要一个方法来访问? 【参考方案1】:在您的情况下,Java,孩子可以看到父母的私有变量,因为孩子在与变量相同的范围内。如果您对它的工作原理感兴趣,请参阅this 链接
【讨论】:
【参考方案2】:我相信子类(子类)从超类(父类)继承除了构造函数之外的所有内容。即使它是私有的,in 也会继承它。您可能无法访问它,但它就在那里。
话虽如此,您的示例演示了同一类的其他成员可以访问的私有数组。这就是 getter 和 setter 的用武之地。因为数组是私有的,所以只有在同一个类中提供 getter 或 setter 时,外部类才能与其交互。
【讨论】:
以上是关于父类中的私有变量的主要内容,如果未能解决你的问题,请参考以下文章
继承的基本概念: Java不支持多继承,也就是说子类至多只能有一个父类。 子类继承了其父类中不是私有的成员变量和成员方法,作为自己的成员变量和方法。 子类中定义的成员变量和父类中