小白学习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/22 9:27:18 阅读更多 →
Python编程语言入门:从基础到应用全解析

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

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

2026/7/22 7:56:07 阅读更多 →
Android端WebRTC开发实战:从原理到应用

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

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

2026/7/22 5:56:11 阅读更多 →

最新新闻

我用码道10分钟写了个终端2048游戏,能玩!

我用码道10分钟写了个终端2048游戏,能玩!

我用码道10分钟写了个终端2048游戏,能玩!> 本文记录了使用华为云码道(CodeArts)AI编程助手,从零开发一个终端2048游戏的完整过程。所有代码均由码道自动生成并验证通过。## 为什么是2048?2014年&#xf…

2026/7/23 4:45:02 阅读更多 →
红黑树(Red-Black Tree)深度笔记 —— 从插入原理到代码调优

红黑树(Red-Black Tree)深度笔记 —— 从插入原理到代码调优

namespace Jianyi 本文用于系统复盘红黑树插入的实现,覆盖动机、原理、代码、易错点、复杂度与面试延伸。附带对自己实现代码的 Debug 记录(真实踩坑,不是编的)。 目录 1. 为什么会有红黑树?(解决什么问题&…

2026/7/23 4:45:02 阅读更多 →
OpenCV直方图均衡化与比较:图像增强与相似度评估实战

OpenCV直方图均衡化与比较:图像增强与相似度评估实战

1. 项目概述:直方图均衡化与比较的核心价值在数字图像处理的实际项目中,我们常常会遇到图像对比度不足、细节模糊,或者需要量化评估两幅图像相似度的问题。比如,在监控视频分析中,由于光照变化,夜间拍摄的画…

2026/7/23 4:45:02 阅读更多 →
如何保证 Redis 分布式锁的高可用和高性能?

如何保证 Redis 分布式锁的高可用和高性能?

做后端开发时,分布式锁是一个绕不开的话题。比如:秒杀时,同一个商品库存不能被多个请求同时扣成负数定时任务部署了多台机器,但同一时刻只能有一台执行用户重复点击支付按钮,不能生成多笔订单多个服务同时更新同一份缓…

2026/7/23 4:45:02 阅读更多 →
Tiva TM4C123x ROM API实战:CRC、Flash与FPU模块深度解析与应用

Tiva TM4C123x ROM API实战:CRC、Flash与FPU模块深度解析与应用

1. 项目概述在嵌入式开发领域,尤其是基于ARM Cortex-M内核的微控制器项目里,我们常常需要处理数据校验、非易失性存储和浮点运算这些基础但至关重要的任务。对于使用TI Tiva TM4C123x系列MCU的开发者来说,芯片内部ROM固件库中集成的硬件驱动A…

2026/7/23 4:45:01 阅读更多 →
虚幻引擎Pak文件解析:从原理到实战,掌握资源提取与逆向分析

虚幻引擎Pak文件解析:从原理到实战,掌握资源提取与逆向分析

1. 项目概述:为什么我们需要一个Pak文件解析工具?如果你在虚幻引擎项目开发或逆向分析中打过交道,那么对.pak文件一定不会陌生。这个后缀的文件,是虚幻引擎用于打包游戏资源——包括模型、贴图、音频、蓝图、关卡数据等所有内容—…

2026/7/23 4:44:01 阅读更多 →

日新闻

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:25 阅读更多 →
AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

更多请点击: https://codechina.net 第一章:AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析 在对2,346篇跨行业AI生成文案的A/B测试数据进行聚类分析后,我们发现&#xff1…

2026/7/23 0:01:26 阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:01:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 19:43:43 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/22 12:54:44 阅读更多 →

月新闻