我有一个名为ABC
的接口。我也有一个抽象类PQR
,有3个类扩展了这个抽象类。
例如:
abstract class PQR {
//...
}
interface ABC {
//other methods....
PQR returnRightClass();
}
class X extends PQR {
}
class Y extends PQR {
}
class Z extends PQR {
}
现在有一些实现
ABC
接口的类。那么我该怎么做才能从X,Y和Z获得正确的类呢? 最佳答案
尽管建议尽可能多地使用接口,但返回抽象类没有错。如果可以将PQR
设置为接口,则可以这样做。但是,如果没有,请放心。
现在有一些实现ABC接口的类。所以呢
我应该怎么做才能从x,y,z得到正确的类?
只要确保实现returnRightClass()
的每个类中的每个ABC
实现都返回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();
}
}