我是一个Java初学者,正在尝试为我正在编写的游戏编写一套副本任务系统,我有几个问题需要解答。我已经询问了其他人,但他们对Java并不熟悉。
过去,我曾尝试创建一堆类,并使用多个get方法访问它们。我发现这样写非常乏味,认为可以将它们统一在一个抽象类/实现类下。因此,代码看起来更像是这样的...
DynastyPQInterface pq = new CustomPQ // or ....
DynastyPQInterface pq = new OtherCustomPQ
当然,这样做也带来了一些困难,例如只能使用已实现的方法。它不允许我访问类的专有方法,而我可能在以后想要使用它们。
最终,我想做的是能够使用单个获取方法返回任何这些派生类,但仍然保留通用使用获取方法调用它们共有的方法(如执行、创建、结束),同时允许我专门访问它们的专有方法。是否有办法做到这一点,或者说这是不可能的?
如果仍然不清楚...
我现在编写的代码是一个基类,按照以下方式扩展到其他类中...
DynastyPQ (base) -> methods include (run(), execute(), end())
CustomAPQ (inherited from DynastyPQ) -> (has exclusive methods like getPoints())
CustomBPQ (inherited from DynastyPQ) -> (has exclusive methods like revivePlayer())
我想编写一个“get”方法来解决我的多次重复问题。我现在拥有的是...
DynastyPQ dynastyPQ;
DynastyPQ getPQ() {
return dynastyPQ;
}
void setPQ(DynastyPQ pq) {
dynastyPQ = pq;
}
Doing this ...
DynastyPQ pq = new CarnivalPQ();
我只能访问DynastyPQ的方法,而不能访问Carnival的方法。
有没有一种方法可以在普遍执行四个基本函数的情况下访问专属方法,而不考虑类的类型,或者我之前错过了什么?
简而言之,我想要一个获取方法,它能普遍返回所有继承自类X的类;但是,我也想要能够访问每个类的专属方法。