国学经典,永久流传《诗经朗诵全集》
《诗经朗诵全集》带你领略国学经典,永久咏传。...
2023-07-31
结论:
多个子类中有部分类行为相同,使用virtual方法在基类中提供默认实现
所有子类实现迥异,但他们应具有相同的行为,使用abstract关键字标记
使用场景:
virtual方法告诉子类:我很贴心地提供了默认实现,你可以直接使用我,如果你觉得我不够好,你可以重写我。
abstract方法告诉子类:虽然我没办法提供默认实现,但是我警告你,如果你继承了我你就必须实现我,否则你将无法通过编译。
概念:
virtual 关键字声明方法可以在派生类中被重写
abstract关键字声明方法必须由派生自抽象类的非抽象类实现
栗子:
/// <summary> /// abstract标记的类无法实例化 /// </summary> public abstract class BaseClass { public string Property { get; set; } //如果你继承了BaseClass你必须实现MustImplementMethod方法 public abstract void MustImplementMethod(); //如果你继承了BaseClass你可以根据需要重写YouCanOverride方法 public virtual void CanOverrideMethod() { Console.WriteLine("Hello World"); } //普通方法 public void NormalMethod() { Console.WriteLine(this.Property); } } /// <summary> /// 子类 /// </summary> public class ChildClass : BaseClass { /// <summary> /// 如果继承了BaseClass,必须实现MustImplementMethod方法 /// </summary> public override void MustImplementMethod() { throw new NotImplementedException(); } /// <summary> /// 如果继承了BaseClass,可以选择重写CanOverrideMethod方法 /// </summary> public override void CanOverrideMethod() { base.CanOverrideMethod(); base.Property = "Hello World"; base.NormalMethod(); } }
以上内容就是为大家推荐的virtual(编程:virtual方法或abstract方法有什么区别)最佳回答,如果还想搜索其他问题,请收藏本网站或点击搜索更多问题
内容来源于网络仅供参考版权声明:所有来源标注为小樱知识网www.xiaoyin02.com的内容版权均为本站所有,若您需要引用、转载,只需要注明来源及原文链接即可。
本文标题:virtual(编程:virtual方法或abstract方法有什么区别)
本文地址:https://www.xiaoyin02.com/shcs/798278.html
相关文章
热点文章
2021年独生子女补贴新政策是真的吗(独生子女证有有效期吗)
2021年国庆节阅兵仪式几点开始几点结束(2021年国庆节还有阅兵吗)
鼠目寸光一点红是什么生肖动物(鼠目寸光一点红)指什么生肖,紧密
k0到k9的玩法大全(强制gc的玩法和注意事项)
入土为安是什么生肖《入土为安》打一个生肖动物,词语解释
浙江12月底全面停工是真的吗(浙江什么时候放假停工)
如何做t(t怎么把p做哭)
北京口碑最差的三甲医院(北京301医院最擅长什么)