在這種情況下,我會定義一個通用的實現你的抽象類的,這樣你得到的東西是這樣的:
public abstract class EngineBase<T>
{
public abstract void Refuel(T parameters);
}
然後你實現這個樣子:
public class ElectricEngine : EngineBase<ElectricParameters>
{
public override void Refuel(ElectricParameters parameters) { }
}
或者,您可以定義一個接口,並將具體實現傳遞給您的方法:
public abstract class EngineBase
{
public abstract void Refuel(IRefuelParameters parameters);
}
然後你實現這個樣子:
public class ElectricEngine : EngineBase
{
public override void Refuel(IRefuelParameters parameters)
{
if(!(parameters is ElectricParameters))
throw ApplicationException("Not the right params!");
ElectricParameters rightParams = parameters as ElectricParameters;
}
}
是否有任何常見的參數爲電動和燃油發動機加油? – tomasmcguinness 2011-04-08 15:17:47