Java构造函数可以构造子类的对象吗?

ami*_*mit 3 java factory

有没有办法修改构造函数中构造的类?

public class A {
  A() {
    //if (condition) return object of type B
    //else return A itself
  }
}
public class B extends A { }
Run Code Online (Sandbox Code Playgroud)

基本上我想使用基类构造函数作为工厂方法.在java中有可能吗?

Pav*_*aev 9

不,A如果你想这样做,你将不得不使用工厂方法.你班上的客户有权期望,如果他这样做new A(),他会得到一个班级的对象A,而不是其他人.


akf*_*akf 5

不,构造函数只会实例化它们所代表的类的对象.这就是构造函数中没有指定返回值的原因.