スーパークラスのコンストラクタの外で初期化されたプライベート変数は、サブクラスで正しく継承されますか?Java:スーパークラスのプライベート変数の初期化
たとえば、次のコードでは、プライベートインスタンス変数xはサブクラスで正しく継承されますか? Rectangleで定義された2つのパブリックゲッターでのみ、Squareサブクラスでxとyにアクセスできることがわかります。しかし、xがコンストラクタの外で初期化されても、サブクラスは引き続き正常にxを継承しますか?
public class Rectangle
{
private int x = 0;
private int y;
protected double height;
protected double length;
public Rectangle(double length, double height)
{
this.height = height;
this.length = length;
y = 0;
}
public int getx()
{
return x;
}
public int gety()
{
return y;
}
}
public class Square extends Rectangle
{
public Square(double side)
{
super(side, side);
}
}
はい。問題はありません。 – Gendarme
プライベートメンバーは継承されません。ただし、プログラムテキストごとに初期化されます。 – EJP