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

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

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

2026/10/17 23:51:14 阅读更多 →
Android端WebRTC开发实战:从原理到应用

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

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

2026/10/20 9:00:03 阅读更多 →

最新新闻

2026网络安全就业全景:岗位趋势、薪酬地图与技能风向

2026网络安全就业全景:岗位趋势、薪酬地图与技能风向

1. 为什么我会在年底啃这份招聘数据:调研背景与样本口径每年四季度都是观察次年就业市场最好的窗口期,因为各大公司的HC预算、校招指标、社招编制基本都在这个阶段定调。我做了近十年的安全行业职业发展相关调研,今年选了2025年10月到2026年1…

2026/10/20 12:47:34 阅读更多 →
AI论文写作全攻略:四款实用工具与高效降重、文献综述实操指南

AI论文写作全攻略:四款实用工具与高效降重、文献综述实操指南

毕业季又到了,我后台收到最多的私信就是“论文写不出来怎么办”。说实话,毕业论文这事儿,卡在最后一步的滋味确实难受。今年我实测了市面上主流的几款AI论文写作工具,也拉了几个刚答辩完的同学做了深度反馈,今天直接把…

2026/10/20 12:47:34 阅读更多 →
圆的性质第二讲:垂径定理、圆周角定理与圆内接四边形实战要点

圆的性质第二讲:垂径定理、圆周角定理与圆内接四边形实战要点

圆的性质是初中几何里最"有看头"的一块内容——结论密集、模型多样,而且和代数、三角都能搭上关系。云藏山鹰代数信息系统的几何模块里,圆的性质系列课程我已经带过好几轮了,这次把第二讲的教学手记整理成文:垂径定理怎…

2026/10/20 12:47:34 阅读更多 →
AI编码新王炸Augment实测:大项目重构、对比Cursor与避坑指南

AI编码新王炸Augment实测:大项目重构、对比Cursor与避坑指南

1. 为什么“AI 写代码”最近突然又换了一个主角1.1 先认识一下这位“新王炸”是谁这几年 AI 编码工具的更新频率,说实话已经快到让人麻木的程度。今天这个大模型说自己的代码能力第一,明天那个编辑器说自己能自动改完一个项目,用户嘴上说“好…

2026/10/20 12:47:34 阅读更多 →
配电网重构MISOCP建模:二阶锥松弛与MATLAB实战

配电网重构MISOCP建模:二阶锥松弛与MATLAB实战

简介:本资源是一套基于混合整数二阶锥规划(MISOCP)求解配电网重构问题的完整MATLAB实现代码,面向电力系统优化、智能配电网研究方向的研究生、科研人员及工程技术人员。针对传统启发式或智能算法在全局最优性与收敛性上的局限&…

2026/10/20 12:47:34 阅读更多 →
提示词模板化:从基础到高级的Prompt Engineering实战指南

提示词模板化:从基础到高级的Prompt Engineering实战指南

1. 为什么要把提示词做成模板:从重复劳动到可复用资产先讲一个我自己的经历。早期用对话式AI干活的时候,每次都是临时想提示词,想到哪写到哪:“帮我总结一下这段文字”“写一个产品介绍,要专业一点”。这种随手写的做法…

2026/10/20 12:46:33 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →