小白学习C#笔记 day4 - 继承进阶:protected访问修饰符与多态基础
⭐以下内容可能有误请仔细甄别1.protected访问修饰符我们之前学了两种访问权限• public完全公开任何地方都能读写• private完全私有只有当前类内部能用在继承场景里会出现一个中间需求父类的成员只想让子类能直接访问不想对外界公开。private太严子类也碰不到public太松外部随便改C#专门为这个场景设计了protected。权限范围当前类内部 所有派生类内部可访问类外部代码无法访问核心作用在继承体系内权限权限对外依然保持封装性举例如下另外补充一个高频用法属性的访问器也可以单独加protected比如public string Name { get;protected set;}效果是外界可以读取名字但只有类内部和子类可以修改名字比private set多了子类修改的权限。下面介绍三个典型常用的场景1.基类核心状态字段子类内部需直接操作对外严格封装最常见于游戏开发、业务模型的基类设计。• 场景比如角色基类 Character 里的 _hp、_attack 等核心数值战士、法师等子类的专属技能方法里需要频繁读写这些值但绝对不允许外部代码直接修改。• 为什么不用 private子类碰不到只能通过公开属性间接操作子类内部写逻辑会很繁琐• 为什么不用 public外部随便改数值直接破坏封装和业务规则。2.基类内部通用方法仅供给子类复用对外隐藏实现• 场景基类封装了通用的计算逻辑比如伤害公式、属性校验方法所有子类都要调用但这个内部方法不该暴露给外部使用者。• 作用通用逻辑只写一遍子类直接复用同时对外隐藏内部实现细节。你可以把父类想象成「后厨总厨房」子类是「各个特色档口川菜、粤菜」外部代码是「吃饭的客人」。• 厨房里有个通用技能切菜备料()这个活儿每个档口都要做但绝对不能让客人自己上手。• 如果设成 private只有总厨房自己能用各个档口子类用不了每个档口都得重新学一遍切菜重复劳动• 如果设成 public客人也能直接进后厨切菜完全乱套破坏封装• 设成 protected 刚好所有后厨内部的档口子类都能用客人外部代码碰不到。对应到代码里3.属性的 protected set—— 日常开发最高频用法• 场景属性对外只读但允许子类内部修改。比如角色等级、学生的学籍状态外部只能查看子类的升级、转职方法可以修改。• 对比private set 只有当前类能改protected set 是当前类 所有子类都能改权限更贴合继承体系。举个生活例子学生的学籍状态对外只能查看公开读只有教务处父类和班主任子类能修改普通同学外部代码改不了这时候就适合用 protected set。2.多态一、什么是多态通俗定义同一个行为不同对象有不一样的实现效果。游戏场景举例所有角色都有「释放技能」这个行为但战士、法师、弓箭手的技能完全不同。• 父类角色统一规定“释放技能”这个动作• 子类战士重写技能近战挥砍• 子类法师重写技能远程火球• 子类弓箭手重写技能射箭同一个方法名CastSkill()不同角色调用效果不一样这就是多态。二、实现多态的基础语法virtual override1. virtual写在父类方法前面代表这个方法允许子类重写2. override写在子类方法前面代表重写父类标记virtual的方法示例如下三、多态真正的核心用法父类变量接收子类对象这是多态最关键的价值也是游戏开发高频写法父类类型的变量可以存放任意一个它的子类实例。核心好处你不需要单独创建战士数组、法师数组只用一个Character数组就能管理所有类型角色一套代码统一调用技能新增职业只需要新建子类不用改动原有逻辑。四、补充base.方法() 在重写里的作用重写时如果想保留父类原本的逻辑再追加子类专属效果用base.CastSkill()调用父类原方法五、硬性规则必记1. 父类不加virtual子类绝对不能用override重写2. 重写的方法方法名、返回值、参数列表必须和父类完全一致3. 访问权限不能变父类是public子类重写也必须public前天晚上起来拉肚子没睡好昨天下午休息少学了会

相关新闻

手机散热器风道优化:飞智BS3进气改件实测降温5℃

手机散热器风道优化:飞智BS3进气改件实测降温5℃

最近在折腾手机散热器时,发现一个很有意思的现象:很多人花几百块买高端散热器,却忽略了最基础的风道设计。就像你给一台高性能电脑配了顶级水冷,结果机箱风道一团糟,热量根本散不出去。飞智BS3和BS3pro这两款散热器&am…

2026/7/18 4:40:35 阅读更多 →
Python编程语言入门:从基础到应用全解析

Python编程语言入门:从基础到应用全解析

1. Python语言概述Python是一种高级编程语言,由Guido van Rossum于1991年首次发布。它以简洁明了的语法和强大的功能而闻名,已经成为当今最受欢迎的编程语言之一。Python的设计哲学强调代码的可读性和简洁性,这使得它成为初学者和专业开发人员…

2026/7/18 4:40:35 阅读更多 →
Android端WebRTC开发实战:从原理到应用

Android端WebRTC开发实战:从原理到应用

1. WebRTC在Android端的核心价值与应用场景WebRTC作为实时通信领域的核心技术,在移动端尤其是Android平台有着广泛的应用前景。不同于传统的视频通话方案,WebRTC提供了端到端的加密传输和低延迟特性,这使得它成为构建实时互动应用的理想选择。…

2026/7/18 4:40:34 阅读更多 →

最新新闻

Zotero PDF Translate:如何在Zotero中实现20+翻译服务一键切换,提升学术阅读效率300%

Zotero PDF Translate:如何在Zotero中实现20+翻译服务一键切换,提升学术阅读效率300%

Zotero PDF Translate:如何在Zotero中实现20翻译服务一键切换,提升学术阅读效率300% 【免费下载链接】zotero-pdf-translate Translate PDF, EPub, webpage, metadata, annotations, notes to the target language. Support 20 translate services. 项…

2026/7/18 12:58:34 阅读更多 →
深入解析TI AM62L DDRSS内存控制器:VBUSM2AXI桥接与EMIF_SSCFG寄存器配置实战

深入解析TI AM62L DDRSS内存控制器:VBUSM2AXI桥接与EMIF_SSCFG寄存器配置实战

1. 项目概述与核心价值在嵌入式系统,尤其是像TI AM62L这样的高性能Sitara处理器设计中,内存子系统(DDR Subsystem, DDRSS)的性能和稳定性是决定整个系统成败的关键。它不仅仅是连接CPU和内存的“水管”,更是协调多核、…

2026/7/18 12:58:34 阅读更多 →
告别键盘连击烦恼:3个步骤让你的机械键盘重获新生

告别键盘连击烦恼:3个步骤让你的机械键盘重获新生

告别键盘连击烦恼:3个步骤让你的机械键盘重获新生 【免费下载链接】KeyboardChatterBlocker A handy quick tool for blocking mechanical keyboard chatter. 项目地址: https://gitcode.com/gh_mirrors/ke/KeyboardChatterBlocker 你是否曾经在打字时发现&q…

2026/7/18 12:58:34 阅读更多 →
Nintendo Switch大气层Atmosphere稳定版:免费自定义固件的终极安装指南

Nintendo Switch大气层Atmosphere稳定版:免费自定义固件的终极安装指南

Nintendo Switch大气层Atmosphere稳定版:免费自定义固件的终极安装指南 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable 还在为Switch官方系统的限制感到束手束脚吗?…

2026/7/18 12:58:34 阅读更多 →
14.8使用「阿里云函数计算 FC」即使 Content-Type设置text/html,浏览器也直接弹出下载框,完全无视网页渲染

14.8使用「阿里云函数计算 FC」即使 Content-Type设置text/html,浏览器也直接弹出下载框,完全无视网页渲染

操作步骤:进入 OSS 控制台 → 打开 ourselves Bucket → 文件列表找到 we.html,点击右侧「详情」切换到「元信息」标签页找到 Content-Disposition 这一项,直接删除这一行!或者把它的值从 attachment 改成 inline(推荐…

2026/7/18 12:58:34 阅读更多 →
如何用Path of Building实现极致流放之路Build规划:从理论到实战的完整指南

如何用Path of Building实现极致流放之路Build规划:从理论到实战的完整指南

如何用Path of Building实现极致流放之路Build规划:从理论到实战的完整指南 【免费下载链接】PathOfBuilding Offline build planner for Path of Exile. 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding 你是否曾经在《流放之路》中投入大…

2026/7/18 12:57:33 阅读更多 →

日新闻

从模糊意图到可执行指令:Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则

从模糊意图到可执行指令:Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则

更多请点击: https://kaifayun.com 第一章:从模糊意图到可执行指令:Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则 在Claude驱动的产品需求文档(PRD)生成实践中,原始业务意图往往以自然语言片…

2026/7/18 0:00:38 阅读更多 →
Cursor配置生成失效?3大隐藏陷阱+4行修复代码,资深工程师连夜整理的紧急补救清单

Cursor配置生成失效?3大隐藏陷阱+4行修复代码,资深工程师连夜整理的紧急补救清单

更多请点击: https://codechina.net 第一章:Cursor配置生成失效?3大隐藏陷阱4行修复代码,资深工程师连夜整理的紧急补救清单 Cursor 配置生成突然失效,是近期高频报障场景。表面看是 cursor.config.json 未更新或 LSP…

2026/7/18 0:00:38 阅读更多 →
某智驾大牛创业

某智驾大牛创业

作者:钟声编辑:Mark出品:红色星际头图:智能驾驶图片据悉,国内某头部智驾公司端到端模型技术大牛Z投身创业,并且已经拿到融资。Z不仅是该头部公司内部最年轻的对标阿里P10级别技术负责⼈,更是业内…

2026/7/18 0:00:38 阅读更多 →

周新闻

月新闻