Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 父类中的私有变量_Java_Variables_Inheritance_Private - Fatal编程技术网

Java 父类中的私有变量

Java 父类中的私有变量,java,variables,inheritance,private,Java,Variables,Inheritance,Private,所以在老师给我的代码中,它让孩子调用一个从私有数组返回值的方法 我的问题是,子类可以从父类看到什么?它能看到所有的公共方法和变量,而没有私有变量吗 class Polygon { private int[] sideLengths; public Polygon(int sides, int ... lengths) { int index = 0; sideLengths = new int[sides]; for (int length:

所以在老师给我的代码中,它让孩子调用一个从私有数组返回值的方法

我的问题是,子类可以从父类看到什么?它能看到所有的公共方法和变量,而没有私有变量吗

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);
  }
}
类多边形
{ 
私有int[]边长;
公共多边形(整数边、整数…长度)
{ 
int指数=0;
边长=新的整数[边];
用于(整数长度:长度)
{ 
边长[指数]=长度;
指数+=1;
} 
} 
公共整数侧(整数编号)
{ 
返回边长[数量];
} 
公共周界()
{ 
int-total=0;
对于(int index=0;index
在您的示例Java中,子对象可以看到父对象的私有变量,因为子对象与变量在同一范围内。如果您对其工作原理感兴趣,请参见链接

我相信子类(子类)继承了超类(父类)中除构造函数之外的所有内容。即使它是私人的,在继承它。您可能无法访问它,但它就在那里


也就是说,您的示例演示了同一类的其他成员可以访问私有数组。这就是能手和二传手的用武之地。因为数组是私有的,所以只有在同一个类中提供getter或setter时,外部类才能与之交互

这取决于你使用的语言。通常是公共的和受保护的。这是java,所以您需要一个方法来访问父类中的私有变量?