C#don';t重写重写方法
是否有C#don';t重写重写方法,c#,C#,是否有属性或模式告诉编译器不允许重写可重写方法 例如: 车辆 public class Vehicle { public virtual void Start() { } } public class Car : Vehicle { // ################ [DontAllowOverrideAgain] //I need something like this attribute // ################ public o
属性
或模式
告诉编译器不允许重写可重写方法
例如:
车辆
public class Vehicle
{
public virtual void Start() { }
}
public class Car : Vehicle
{
// ################
[DontAllowOverrideAgain] //I need something like this attribute
// ################
public override void Start()
{
// Todo => codes that every car must invoke before start ...
CarStart();
// Todo => codes that every car must invoke after start ...
}
public virtual void CarStart() { }
}
public class CoupeCar : Car
{
// throw and error or show a message to developer
public override void Start() { }
public override void CarStart() { }
}
汽车
public class Vehicle
{
public virtual void Start() { }
}
public class Car : Vehicle
{
// ################
[DontAllowOverrideAgain] //I need something like this attribute
// ################
public override void Start()
{
// Todo => codes that every car must invoke before start ...
CarStart();
// Todo => codes that every car must invoke after start ...
}
public virtual void CarStart() { }
}
public class CoupeCar : Car
{
// throw and error or show a message to developer
public override void Start() { }
public override void CarStart() { }
}
CoupeCar
public class Vehicle
{
public virtual void Start() { }
}
public class Car : Vehicle
{
// ################
[DontAllowOverrideAgain] //I need something like this attribute
// ################
public override void Start()
{
// Todo => codes that every car must invoke before start ...
CarStart();
// Todo => codes that every car must invoke after start ...
}
public virtual void CarStart() { }
}
public class CoupeCar : Car
{
// throw and error or show a message to developer
public override void Start() { }
public override void CarStart() { }
}
当然,只需将第一个覆盖创建为
sealed
,这将导致开发人员可以看到的编译时失败
public class Car : Vehicle
{
public sealed override void Start()
{
// Todo => codes that every car must invoke before start ...
CarStart();
// Todo => codes that every car must invoke after start ...
}
public virtual void CarStart() { }
}
给你,用密封的 参考文献
非常感谢,我也不知道如何使用方法。