我有以下類在C++C++模板和繼承在Java中
ParentClass
{
virtual int MyMethod();
}
class ExistingOne : ParentClass {...}
class ExistingTwo : ParentClass {...}
現在我想創建一個類,可以擴展這些已存在的類並覆蓋了幾個他們的方法加上調用方法在某些條件下的現有班級中。
在C++中,這是使用做了以下:
template< class BaseTemplate >
class MyClass : public BaseTemplate
{
int MyMethod()
{
DoSomething();
return BaseTemplate::MyMethod();
}
}
這是如何在Java中做了什麼?
到目前爲止,我有
public abstract class ParentClass
{
public abstract int MyMethod();
}
public class ExistingOne extends ParentClass {...}
public class ExistingTwo extends ParentClass {...}
public class MyClass<T extends ParentClass>
{
public int MyMethod()
{
DoSomething();
return T.MyMethod(); //MyMethod must be statically defined?
}
}
哦,最後,我不能修改「現有」或父類。
那麼這是正確的方法?我如何解決靜態要求?
與C++ AFAIR相比,Java對於_'generic'_類和接口的能力差。 –
@πάνταῥεῖ這不是關於*可憐的capabilites *,這只是錯誤的設計。 –
@LuiggiMendoza這只是一個意見。這可能是真的,你說什麼...... –