吃透面向对象核心:封装、继承、多态、接口全解
C#面向对象三大特性是编程核心重难点本文详细讲解访问权限修饰符、封装与属性、继承与sealed密封类、方法重写、base关键字、抽象类、接口、多态、类型转换及is/as关键字搭配完整实战代码零基础也能轻松掌握OOP核心用法搞定C#进阶必备知识点主要内容访问权限修饰符封装继承方法重写base关键字接口多态1.访问权限修饰符访问修饰符用于控制类、结构、接口、方法和属性、字段等的可见性public:公开的修饰类和类中的成员在整个解决方案中都可使用internal:内部的修饰类和类中的成员在整个项目中都可使用private:私有的修饰类的成员允许修饰内部类只能在类中使用protected:受保护的修饰类的成员只能在本类中生效也可以在子类包含子类的子类及跨项目的子类中生效2.面向对象三大特性-封装封装的主要目的是保护对象的数据不被随意修改、访问数据操作的细节只通过定义好的方法进行访问和操作。这样可以提高代码的安全性、可维护性和可灵活性。封装是一种将数据和操作数据的方法捆绑在一起并隐藏内部实现细节的机制‌1、隐藏内部状态‌将对象的字段设置为私有private这样外部代码不能直接访问这些字段。2‌、提供公共接口‌为对象提供公共方法public来操作内部数据这样外部代码可以通过这些公共方法间接访问和修改内部数据。3、封装的好处‌‌数据保护‌防止外部代码直接访问和修改对象的内部数据从而保护数据的一致性和完整性。‌易于维护‌当内部实现发生变化时只需要修改封装的方法不需要修改外部代码。属性 是一种特殊的成员用于封装类中的字段。它们提供了一种灵活的机制来读取get和/或写入set私有字段的值实现封装私有的字段通常以_开头其它遵循小驼峰命名法。公开的属性通常遵循大驼峰命名法。选中字段名Ctrl R E 快速生成get/set方法3.面向对象三大特性之一继承继承 是一种面向对象编程的核心特性它允许我们创建一个新类称为子类或派生类基于另一个已存在的类称为基类或父类。通过继承子类可以继承基类的属性fields和方法methods并且可以添加新的属性、方法或覆盖override基类的成员。如果多个类中存在相同的方法、属性则可以考虑将相同方法、属性抽取到父类中再通过继承关系子类对象可以直接调用父类中的属性、方法进而可以避免反复编写相同逻辑的代码。实现代码复用和层次化设计语法格式class A : B{}A类 继承 B类A类可以直接使用B类中可以被继承的属性和方法。父类中应根据职责封装子类共有的属性和方法。C#中为单继承只能有一个直接父类。在C#中一个类可以被声明为sealed密封类这意味着它不能被继承。4.方法重写方法重写Override是面向对象编程中的一个核心概念当从父类中继承的方法不能满足子类的需求子类可以重写替换从基类中继承来的方法。virtual修饰方法虚空方法特点子类可以重写也可以不重写override修饰方法重写后的方法特点重写后的方法允许子类再进行重写new修饰方法隐藏父类中继承的方法特点子类中定义了和父类中相同的方法使用new隐藏父类中继承的方法abstract修饰方法、类抽象方法1.子类必须重写父类中的抽象方法要么子类也为抽象类2.抽象方法必须定义在抽象类中### 方法重写与方法重载英文位置不同作用不同重载overload同一个类中在一个类里面的一种行为方法名可以相同提高可读性可维护性。。重写override子类和父类间父类方法无法满足子类的要求子类通过方法重写满足要求。5.base关键字指向子类对象中从父类中继承的成员this.xxx先使用子类中的子类中没有再使用父类中继承的base.xxx使用父类中继承的子类中成员和父类中成员同名时base.成员名调用父类中成员子类构造方法:base(xxx)创建子类对象在堆空间中申请空间该空间中1.存储子类的字段、属性、方法。2.存储父类中继承的字段、属性、方法。this与base关键字的区别this用于引用当前类的实例对象。可以通过this关键字来访问当前对象的成员。每个实例方法都有一个隐式的this参数该参数指向当前实例。this访问的成员在本类中没有时才访问父类中继承的成员。base通过base关键字来访问父类对象中的成员。base关键字并不是父类对象的引用而是一种用于访问基类成员的语法。它允许在派生类中访问基类的构造函数、方法和属性等。6.接口1. 介绍接口Interface是一种定义规范而不是定义行为具体的实现引用类型。它用于定义一组方法、属性、事件或索引器的契约。接口本身不提供实现而是由实现接口的类来提供具体实现。接口定义中只包含属性、方法等的声明而没有实际的方法实现或字段。可以把一个接口看做是一组公共的属性和方法的规范。由于C#中类的继承是单继承的接口为多继承在某些方面可以弥补单继承的不足。2. 特点接口存在的意义就是制定规范。接口没有构造函数不能创建对象。接口中属性方法不允许添加访问权限修饰符默认为public。接口与接口之间可以多继承。类与接口之间可以多实现。实现类实现了接口后必须将接口中所有抽象方法都实现。3. 使用原则接口使用interface关键字声明它与类的声明类似。接口声明默认是 public 的。按照约定接口名称以大写字母I开头。接口中的属性是隐式public。接口中的方法隐式为public公开 abstract(抽象类)。4. 语法格式4.1 定义接口[public | internal] interface 接口名{​返回值类型 方法名([形参列表]);}internal interface IMyInterface { void Play(); }4.2 实现接口一个类可以实现一个或多个接口。4.2.1 实现一个接口[public | internal] class 类名 : 接口名{​返回值类型 方法名([形参列表])​{​}}internal interface IMyInterface { void Play(); } class MyClass : IMyInterface { public void Play() { } }7.多态面向对象三大特征之一多态。调用同一个父类|接口中的方法由于子类|实现类不同可能会有不同的行为。以**继承继承类|实现实现接口**为前提。多态 可以 增加代码的灵活度。是调用方法的技巧不会影响到类|接口的内部设计。使用多态创建对象父类型|接口类型 对象名1 new 子类型|实现类型();Person person new Zs();类型转型方式1子类型|实现类型 对象名2 (子类型|实现类)对象名1;Zs zs1 (Zs)person;方式2子类型|实现类型 对象名3 对象名1 as 子类型|实现类型;as关键字 用于将一个对象强制转换为指定的类型。Zs zs2 person as Zs;is 关键字is关键字 主要作用是进行类型检查判断一个对象是否属于某个类型。使用is关键字可以增加代码的安全性。bool 变量名 对象名 is 类型;Person person new Zs(); if (person is Zs) { Zs zs2 person as Zs; Zs zs1 (Zs)person; }5.4 as 和 is 区别is操作符主要用于检查一个表达式的类型是否与指定的类型兼容而as操作符主要用于将一个对象强制转换为指定的类型。

相关新闻

1.4、Linux系统安装KES

1.4、Linux系统安装KES

1、安装准备 1.版本说明V008R006C009B0014 V008:是version产品的大版本。 R006:是release产品特性版本。 C009:是通用版 B0014:是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存:1GB 以上 硬盘&#xff1a…

2026/8/14 6:44:10 阅读更多 →
Python ImportError深度解析:从error模块导入失败到模块系统原理

Python ImportError深度解析:从error模块导入失败到模块系统原理

1. 项目概述:当 from error import * 遇上 ImportError 如果你在 Python 代码里写下了 from error import * ,然后满怀期待地运行,结果迎面而来的却是 ImportError: No module named ‘error‘ ,那一瞬间的困惑和挫败感&a…

2026/8/14 6:44:10 阅读更多 →
深度解析:为什么上海的中小企业在做【上海部道网站 建设】时容易踩雷以及我们如何避坑

深度解析:为什么上海的中小企业在做【上海部道网站 建设】时容易踩雷以及我们如何避坑

做互联网这行久了,你会发现一个特别有意思的现象:很多老板在做【上海部道网站 建设】这件事上,往往比去上海滩谈几百万的生意还要焦虑。焦虑什么呢?焦虑的是钱花出去了,网站做出来了,看起来挺唬人,结果一看数据,空空如也。更有甚者,网站刚上线没几天,搜索引擎里连个影…

2026/8/14 6:44:10 阅读更多 →

最新新闻

纹波防夹:车窗电机是怎么知道自己转了多少?

纹波防夹:车窗电机是怎么知道自己转了多少?

很多人第一次接触汽车车窗、天窗防夹控制时,都会有一个很自然的问题: 电机里面没有霍尔传感器,控制器怎么知道玻璃现在移动到哪里?又怎么判断玻璃是不是被夹住了? 一种非常有意思的答案是:不一定需要位置传感器,可以直接“听”电机的电流波形。 有刷直流电机在旋转过…

2026/8/14 7:48:32 阅读更多 →
TMC2209步进电机驱动实战:从静音配置到堵转检测

TMC2209步进电机驱动实战:从静音配置到堵转检测

1. 先搞清楚 TMC2209 到底解决了什么问题如果你正在用 A4988、DRV8825 这类传统步进电机驱动器,并且对电机运行时的啸叫、发热和丢步问题感到头疼,那 TMC2209 就是你接下来最该关注的芯片。它不是一个简单的“驱动能力更强”的升级品,而是一个…

2026/8/14 7:48:32 阅读更多 →
为什么PCB地与金属机壳之间,经常要并联阻容?

为什么PCB地与金属机壳之间,经常要并联阻容?

从ESD、EMI到共模电流,一次搞懂阻容连接的真正作用 在带金属外壳的电子产品中,经常能看到这样一个看似简单、却很容易被误解的电路: PCB的GND与金属机壳PGND之间,并联一个1MΩ电阻和一个1nF、2kV左右的高压电容。 很多工程师看到这里,第一反应可能是: “GND为什么不直…

2026/8/14 7:48:32 阅读更多 →
语义理解让电商平台的商品标准数据实现精准匹配与推荐

语义理解让电商平台的商品标准数据实现精准匹配与推荐

随着电商行业从流量红利时代迈入精细化运营时代,“人货精准匹配”已成为平台、商家突破增长瓶颈、提升用户体验的核心抓手。当前电商生态中,商品数据呈现海量化、碎片化、非标化特征,海量SKU存在参数混乱、描述不规范、语义歧义、品类错配等问…

2026/8/14 7:48:32 阅读更多 →
揭秘中企动力网站建设合同背后的那些坑与红利如何避坑省钱拿结果

揭秘中企动力网站建设合同背后的那些坑与红利如何避坑省钱拿结果

做老板的,尤其是那些在传统行业摸爬滚打多年、现在终于狠下心要把业务搬到线上去的实体企业主,心里头都清楚一件事:现在这个年代,没有官网,连个正经门脸都算不上。但真到了要签那个厚得像砖头一样的《中企动力网站建设合同》时,很多人心里其实是一虚的。为啥?因为咱们不…

2026/8/14 7:48:32 阅读更多 →
dsniff网络嗅探工具:安装使用与安全实践指南

dsniff网络嗅探工具:安装使用与安全实践指南

1. 网络流量分析工具dsniff深度解析在网络安全和系统管理领域,流量分析工具一直扮演着重要角色。dsniff作为一款经典的网络嗅探工具集,自1999年由Dug Song发布以来,就以其高效的流量捕获和分析能力在安全圈内广为人知。这套工具集包含dsniff、…

2026/8/14 7:47:32 阅读更多 →

日新闻

临沂网站建设铭镇:深耕本土数字生态,以匠心铸就企业品牌核心竞争力

临沂网站建设铭镇:深耕本土数字生态,以匠心铸就企业品牌核心竞争力

在这个流量为王、视觉至上的互联网时代,对于临沂乃至整个山东乃至全国的传统中小企业来说,拥有一张精美的“数字名片”早已不再是可选项,而是生存的必答题。每当夜幕降临,沂河两岸灯火辉煌,物流之都的喧嚣逐渐沉淀为对未来的思考。我们常常听到老板们在茶余饭后探讨:为什…

2026/8/14 0:00:26 阅读更多 →
Flutter与OpenHarmony实现剧本杀组队表单开发实战

Flutter与OpenHarmony实现剧本杀组队表单开发实战

1. 项目概述在移动应用开发领域,跨平台框架Flutter因其高效的开发体验和出色的性能表现,已经成为众多开发者的首选。而OpenHarmony作为新兴的操作系统平台,其开放性和灵活性为开发者提供了全新的可能性。本文将聚焦于一个实际应用场景——剧本…

2026/8/14 0:00:26 阅读更多 →
大连网站建设找简维科技:为您打造懂业务更懂用户的数字化转型引擎

大连网站建设找简维科技:为您打造懂业务更懂用户的数字化转型引擎

在这个数字化浪潮席卷全球的今天,企业想要在激烈的市场竞争中站稳脚跟,拥有一张好看的“数字名片”已经远远不够了。很多老板在刚开始接触互联网业务时,都有一个共同的困惑:为什么我花了钱建的网站,就像是在真空中自嗨?访客进来转了两圈就跑了,线索石沉大海,甚至连客服…

2026/8/14 0:01:27 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/13 2:38:34 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/13 10:41:52 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/13 10:41:51 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/13 10:41:50 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/13 10:41:49 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/13 10:41:49 阅读更多 →