child class 的重载构造函数

Overloading constructor of child class

比如说我有一个 Circle class:

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);
}

// ...

然后在ColoredCircle中,一个child class of Circle:

ColoredCircle(Point centre, Color color, double radius) {
    super(centre, radius);
    this.color = color;
}

ColoredCircle(Point centre, Color color) {
    // ???
}

ColoredCircle 的第二个构造函数应该包含什么?

我认为两者都可以,但哪个会导致 "cleaner code"?

您的两个示例都有些多余,因为 Circle 已经有一个将半径设置为默认值的构造函数。

我建议你使用它,并像这样构造你的构造函数:

super(centre);
this.color = color;