我正在查看一些 java 代码,其中类的构造函数如下所示:
public class X extends ... {
X(String s) {
super(new Y(s));
}
}
那总是错的吗?换句话说,它是否在构造函数中创建一个对象以将其传递给“超级”总是错误的?如果是,为什么?
编辑:为什么我认为这可能是错误的?
当创建一个类 X 时,jvm 做的第一件事就是在它的超类上调用 super。(即使暗示了 'super()' 也会这样做)您只能执行有限数量的操作,例如super(new Y(s));
使用三元运算符调用 supersuper( s != null ? new Y(s) : new Y() )
但您将无法放置更多逻辑,因为必须首先调用 super !!!这就是为什么我认为这是错误的