第三回 基类中的方法,应该根据实际情况,虚的虚,抽象的抽象!
今天主要说一下基类中的方法和属性,既然把这东西放进了基类,那有一点可以肯定的是,它们是公用的,这种公用的实现可能由基类自己实现,也可能是子类去实现,对于这句话,会有三种情况:(以方法以例)
1 基类中的方法,对于所有子类都是一样的,并且子类不能修改这个方法,这时,我们的方法这样定义
1 protected void CannotModifyMethod() 2 { 3 ... 4 }
2 基类中的方法,对于所有子类都是一样的,但子类可能根据自己的逻辑,去实现自己那块业务,这时,我们的方法这样定义
1 protected virtual void OverrideMethod() 2 { 3 ... 4 }
3 基类中的方法,完成由子类去实现,每个子类都有自己的业务逻辑,基类本身不能控制它,这时,我们的方法这样定义
1 protected abstract void AbstractMethod();
OK,对于基类中出现的方法大体就这三种情况,我们在设计基类时,一定要根据实际情况去选择最佳的方法,而不要动不动virtual,时不时就来个abstract,当你使用每一个修饰符时,都应该明确知道它的含义,及你为什么要使用它,这样才能把程序写的更加完美,另一方面也能看出你的程序是否“真正的面向对象”!
下面的图像,展现了一个操作基类的CURD操作,它们都是virtual的,为什么?因为它们是可以被子类根据自己的逻辑去覆写的。
感谢您的阅读!
分类:
其它 / 面向对象
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2011-08-10 LINQ~什么时候使用SelectMany和GroupBy
2011-08-10 自己提出的程序开发三大原则:代码简洁,结构清晰,合理运用