C#的面向对象

1)对象= 算法+数据结构

2)对象的行为已方法的形式定义的,属性以成员变量的形式定义的

面向对象程序设计的特点

1)封装性 2)继承性 3)多态性

知识点:

封装性面向对象的核心思想,将对象的属性和行为封装起来,这个载体就是类。

封装思想保证类内部数据结构的完整性,应用该类的用户不能轻易操作此数据结构,而只能执行类允许公开的数据

继承性

子类的实例都是父类的实例,不能说父类的实例是子类的实例

多态

多态值允许使用相同的接口引用多种实际类型,并根据实际类型来执行对应的方法,通过派生类重载基类中的虚函数方法来实现。将父类对象应用于子类的特征就是多态

多态的实现并不依赖具体类,而是依赖于抽象类和接口

抽象类不能实例化对象,在多态的机制中,父类通常被定义为抽象类,在抽象类中给出一个方法的标准,而不是给出实现的具体流程,实质上这个方法也是抽象的。比抽象类更为方便的方法就是将抽象类定义为接口,由抽象方法组成的集合就是接口。

多态的实现方法:

1)方法的重载overloading 在同一个类中定义多个名称相同,参数列表不同的方法。

2)方法的重写overriding 派生类中使用override关键字重写基类中的虚方法

3)虚方法:基类中使用virtual生命并在派生类中使用override关键字重写的方法

4)接口多态:多个类可以实现相同的接口,从而提供统一的操作。

相关推荐
影寂ldy5 分钟前
C# WinForm TCP-Socket
网络·tcp/ip·c#
名字还没想好☜10 分钟前
Python asyncio.Queue 实战:用生产者-消费者给爬虫/任务流限速又解耦
开发语言·爬虫·python·并发·asyncio
czhc114007566322 分钟前
2026-08-25 博客:现场排查的 8 个坑
c#
问君能有几多愁~1 小时前
Qt Json 序列化操作
开发语言·qt·json
xieliyu.1 小时前
MySQL 进阶笔记:用户 / 会话 / 全局 / 局部变量 + CASE 分支语法
开发语言·数据库·笔记·mysql
Z5998178411 小时前
c#软件开发学习笔记--WPF(控件、样式)
笔记·学习·c#
格林威1 小时前
C#高位深相机图像保存:12位16位图像保存方案,OpenCvSharp和Halcon实现
开发语言·人工智能·数码相机·计算机视觉·c#·视觉检测·工业相机
小小龙学IT1 小时前
Qt Graphics View Framework(图形视图框架)深度解析:从 Scene/View/Item 到工业级 2D 场景
开发语言·数据库·qt
2601_966949651 小时前
Python 量化数据质量校验:如何确保股票历史日线数据不存在缺失交易日?
开发语言·人工智能·爬虫·python·量化策略·量化·quantdash
雪隐1 小时前
WPF + MVVM 实战系列03-MVVM 的边界之争,终于有人画了条“差不多”的线
c#