所以在我老师给我的代码中,它让子调用一个从私有数组返回值的方法。
我的问题是,儿童班可以从父母阶层看到什么?它能看到所有公共方法和变量,而没有私有变量吗?
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);
}
}
答案 0 :(得分:2)
在您的情况下,Java可以让孩子看到父项的私有变量,因为子项与变量在同一范围内。如果您对其工作原理感兴趣,请参阅this链接
答案 1 :(得分:0)
我相信子类(子)继承了超类(父类)中的构造函数之外的所有东西。即使它是私有的,也会继承它。您可能无法访问它,但它就在那里。
话虽如此,您的示例演示了同一类的其他成员可以访问的私有数组。这就是getter和setter的用武之地。因为数组是私有的,所以如果你在同一个类中提供getter或setter,外部类只能与它交互。