我想弄清楚如何在基類抽象類中能夠使用派生自類的實例化對象的成員值的方法。例如,假設我有一個名爲Vehicle
的類,它繼承了一個名爲IVehicle
的接口;在抽象類方法中使用實例化的類成員作爲變量
public abstract class Vehicle : IVehicle
{
public int Wheels = 4;
public int CountWheels()
{
return Wheels;
}
}
比方說,那麼我不得不叫Motorcycle
是繼承Vehicle
作爲其它類;
public class Motorcycle : Vehicle, IVehicle
{
public int Wheels = 2;
}
如果我提出一個新的名爲Motorcycle
和newMotorcycle
我打電話newMotorcycle.CountWheels()
,我得到的4而不是2.我假設這是一個在Motorcycle
類我Wheels
定義的問題,但我只是試着關於我所能想到的一切,以使其發揮作用,並且似乎總是忽略子類定義。我知道我可以使CountWheels()
方法抽象化,並在Motorcycle
類中定義它,但我試圖儘量保持基類Vehicle
儘可能通用,因此我可以實現大量其他子類而不必重新定義相同的方法一遍又一遍。
我的第一個問題;我試圖做甚麼可能?如果是這樣,我的成員定義的哪部分需要改變,以便按照我打算的方式工作?
我保證我走遍了互聯網我張貼此之前,在這裏,我無法找到足夠的信息來幫助自己...
爲什麼需要車輪和countWheels?你可以例如將Vehicle.countWheels中的4返回爲默認值,然後覆蓋Motorcycle.countWheels並返回2.並移除車輪。只是一個例子... – ElDuderino
@ElDuderino有人可以推測這是一個MCVE,他的真實代碼是不太人爲的 – BradleyDotNET