sad*_*iwi 0 java inheritance this super
比如说我有一Circle堂课:
static final double DEFAULT_RADIUS = 1.0;
Circle(Point centre, double radius) {
this.centre = centre;
this.radius = radius;
}
Circle(Point centre) {
this(centre, Circle.DEFAULT_RADIUS);
}
// ...
Run Code Online (Sandbox Code Playgroud)
然后在ColoredCircle,一个子类Circle:
ColoredCircle(Point centre, Color color, double radius) {
super(centre, radius);
this.color = color;
}
ColoredCircle(Point centre, Color color) {
// ???
}
Run Code Online (Sandbox Code Playgroud)
的第二个构造函数应该ColoredCircle怎么做?
this(centre, color, Circle.DEFAULT_RADIUS);super(centre, Circle.DEFAULT_RADIUS); this.color = color;我认为两者都可以,但这会导致“更干净的代码”?
您的两个示例都有些多余,因为Circle已经有一个将半径设置为默认值的构造函数。
我建议你使用它,让你的构造函数像这样:
super(centre);
this.color = color;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
63 次 |
| 最近记录: |