我很难理解c#
中接口和抽象类的真实例子答案 0 :(得分:4)
你的意思是真实的世界,在"一个实时的软件系统,包括抽象类或接口"或者你的意思是"一个人为的例子来说明它们的用处"?
如果你的意思是后者认为Vehicle是一个抽象类。你无法对它做任何事情,因为你不知道它做了什么,或者如何驾驶它。
抽象类Vehicle {}
车辆可以分为机动和踏板驱动,但这仍然是抽象的,我们仍然不知道如何处理它。
abstract class MotorVehicle : Vehicle {}
abstract class PedaledVehicle: Vehicle {}
您现在可以定义一个具体的(非抽象)类,例如car。
class MotorCar : MotorVehicle {}
Intefaces派上用场,您只能从一个基类继承。因此,想象一些车辆是可驾驶的,其他车辆是遥控的,有些车辆使用方向盘,其他车辆不是
interface IDrivable{}
interface IHasStearingWheel{}
现在你可以从它的基类派生一个DrivableMotorCar,并实现其他行为。
class DrivableMotorCar : MotorVehicle, IDrivable, IHasStearingWheel {}
答案 1 :(得分:0)
是的,某些人可能会感到困惑:)
没有实现的抽象类看起来像一个接口。 Hovewer存在一些差异。
无法实例化抽象类。它曾经是任何继承类的基类。它是从其继承的其他类的契约,它强制所有子类执行相同的标准。
界面根本不是一个类。它没有实施。 我认为主要区别在于类可以实现多个接口,但只能实现一个类。