在超类中构造函数之外初始化的私有变量是否会在子类中正确继承?
例如,在以下代码中,私有实例变量x是否会在子类中正确继承?我知道只有在Rectangle中定义的2个公共getter,才能在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);
}
}
答案 0 :(得分:1)
是的,它继承没有问题。如果构造函数中没有赋值,则最终会获取默认值,因为它是实例成员。
Object的默认值为null,每个基元都有默认值。