我有一个类,我想创建一个抽象方法来自己返回类的实例。
例如...
public abstract class A {
.........
public abstract Object getInstance();
}
public class B extends A {
@Override
public Object getInstance() {
return this;
}
}
public class C extends A {
@Override
public Object getInstance() {
return this;
}
}
上述代码中,方法getInstance()
无法强制返回子类B
和C
的实例。这是我要得到它的要点。我如何创建一个抽象方法来强制返回子类的实例?
最佳答案
您正在寻找的是通用方法:
public class Q22213940
{
public static void main(String[] args)
{
final B b = new B();
final C c = new C();
System.out.println("b = b.getInstance() " + b == b.getInstance());
System.out.println("c = c.getInstance() " + c == c.getInstance());
}
public static class C extends A
{
@Override
public C getInstance()
{
return this;
}
}
public static class B extends A
{
@Override
public B getInstance()
{
return this;
}
}
public abstract static class A
{
public abstract <T> T getInstance();
}
}
为什么?这没有任何功能性目的。
你为什么要这样做我不知道,这没有逻辑意义,你必须有一个对象的引用才能调用.getInstance();
只会返回您已有的相同引用。
关于java - 返回类实例的抽象方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22213940/