关于c#:你能说一些真实的接口和抽象类的例子吗?


Can you say some Real-life examples of interface and abstract class?

本问题已经有最佳答案,请猛点这里访问。

我对理解C中接口和抽象类的实际示例有点困惑#

  • 界面
  • 抽象类

  • 你是指"一个包含抽象类或接口的实时软件系统"中的真实世界,还是指"一个证明其有用性的人为例子"?

    如果你的意思是后者,把车辆看作是一个抽象类。你还不能用它做任何事情,因为你不知道它做什么,也不知道如何驾驶它。

    抽象类车辆

    车辆可以分为电动和踏板驱动,但这仍然是抽象的,我们仍然不知道如何处理它。

    1
    2
    3
    abstract class MotorVehicle : Vehicle {}

    abstract class PedaledVehicle: Vehicle {}

    现在可以定义一个具体的(非抽象的)类,比如car。

    1
    class MotorCar : MotorVehicle {}

    intefaces非常有用,您只能从一个基类继承它。所以想象一下,有些车辆是可以驾驶的,有些是遥控的,有些车辆使用的是方向盘,有些则不使用。

    1
    2
    3
    interface IDrivable{}

    interface IHasStearingWheel{}

    现在,您可以从其基类派生一个DrivableMotorCar,并实现其他行为。

    1
    class DrivableMotorCar : MotorVehicle, IDrivable, IHasStearingWheel {}

    是的,这可能会让一些人困惑:)

    一个没有实现的抽象类看起来像一个接口。但还是有些不同。

    无法实例化抽象类。它曾经是任何继承类的基类。它是继承自它的其他类的契约,强制所有子类执行相同的标准。

    接口根本不是类。它没有实现。我认为主要的区别是类可以实现多个接口,但只能实现一个类。