【发布时间】:2021-06-10 02:19:52
【问题描述】:
据我了解,子类只有在受保护的情况下才能继承字段变量。从我正在练习的教科书上的 UML 图中,它具有超类私有的字段变量,并且可以由子类的构造函数访问而不会产生错误...如何?
public class GeometricObject {
private String _colour;
private boolean _filled;
private Date _dateCreated;
//Constructors
public GeometricObject() {}
public GeometricObject(String colour, boolean filled) {
this._colour = colour;
this._filled = filled;
}
...
}
public class Circle extends GeometricObject{
private double _radius;
//Constructors
public Circle() {}
public Circle(String colour, boolean filled, double radius) {
super(colour, filled);
this._radius = radius;
}
...
}
【问题讨论】:
-
您发布的代码是否应该显示“超类私有的字段变量并且由子类的构造函数访问”?它没有。
-
子类仍然具有这些变量,即使您无法访问它们。
super调用父类的构造函数,并且说构造函数可以访问那些私有变量。
标签: java inheritance constructor