我有一个名为ABC
的接口(interface)。我还有一个抽象类 PQR
并且有 3 个类扩展了这个抽象类。
例如:
abstract class PQR {
//...
}
interface ABC {
//other methods....
PQR returnRightClass();
}
class X extends PQR {
}
class Y extends PQR {
}
class Z extends PQR {
}
现在有实现 ABC
接口(interface)的类。那么我应该怎么做才能从 X、Y 和 Z 中获得正确的类?
最佳答案
返回一个抽象类没有错,不过建议尽量使用接口(interface)。如果你可以让 PQR
成为一个接口(interface),那就去做吧。但如果没有,不用担心。
Now there are classes which implements ABC interface. So what should I do to get the right class from x ,y ,z?
只需确保每个实现 ABC
的类中 returnRightClass()
的每个实现都返回一个正确的 PQR
实例(x、y 或 z ).
编辑
回答你的问题:
public MyClassX implements ABC {
public PQR returnRightClass() {
return new x();
}
}
或者
public MyClassY implements ABC {
public PQR returnRightClass() {
return new y();
}
}
或者
public MyClassZ implements ABC {
public PQR returnRightClass() {
return new z();
}
}
关于java - 从接口(interface)返回抽象类好吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6732431/