我有一系列的类和一些推广:Java的扩展问题
Class Base1{ .... }
Class Base1Extend1 extends Base1 {.....}
Class Base1Extend2 extends Base1 {......}
我现在有另一套使用这些:
Class Base2 {
Base1 base1;
}
Class Base2Extend1{
base1 = new Base1Extend1();}
Class Base2Extend1{
base1 = new Base1Extend2();}
现在,和Base2执行对基础1的实例化一些工作。
此外,Base2Extend1和Base2Extend2需要在其特定扩展类上执行工作。例如,它们调用仅存在于子类中的特定方法。有没有办法做到这一点,而不必每次都在Base2的扩展类中使用cast?
确切的情况是这样的:
这是一种纸牌游戏,其中有2种类型的球员:用户和“计算机”。 有很多适用于它们的基本方法(pickup卡(),discardCards()等)。 然后有特定于用户的方法(checkMove()等)以及特定于“计算机”(doTurn()等)的方法。
接下来是保存用户卡片的对象playerHand。 同样有基本的方法来处理手(addCards(),removeCards()等)。 然后,只有用户手中有特定的方法(checkCards()等)以及那些特定于“计算机”(判定WhatToDo()等)的方法。
现在我想,也许这会更简单地将类合并在一起。 将Base1和Base2合并到一个类中,然后对子类进行等效合并。
'class Java extends Question'?嗯... – mre
命名为'Base2Extend2扩展Base1'是否正确? – oliholz
你想知道是否有一个类可以像C++中的另一个类似的“朋友”? –