我想弄清楚如何在基类抽象类中能够使用派生自类的实例化对象的成员值的方法。例如,假设我有一个名为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