一、封装 就是把一个或多个项目封闭在一个物理的或者逻辑的包中(或者说是将数据或函数等集合在一个个的单元中)。在面向对象程序设计方法论中,封装是为了防止对实现细节的访问,其意义在于保护或者防止代码(数据)被我们无意中破坏。

抽象和封装是面向对象程序设计的相关特性,抽象允许相关信息可视化,封装则是开发者实现所需级别的抽象。封装既可以封装成员变量,又可以封装成员方法。C# 封装根据具体的需要,设置使用者的访问权限,并通过访问修饰符来实现。一个访问修饰符定义了一个类成员的范围和可见性。

C# 支持的访问修饰符如下所示:

访问修饰符 范围 备注
public 所有对象都可以访问 允许一个类将其成员变量和成员函数暴露给其他的函数和对象,任何公有成员可以被外部的类访问。
private 对象本身在对象内部可以访问

允许一个类将其成员变量和成员函数对其他的函数和对象进行隐藏,只有同一个类中的函数可以访问它的私有成员,即使是类的实例也不能访问它的私有成员。

protected 只有该类对象及其子类对象可以访问 允许子类访问它的基类的成员变量和成员函数,这样有助于实现继承。
internal 同一个程序集的对象可以访问 允许一个类将其成员变量和成员函数暴露给当前程序中的其他函数和对象。换句话说,带有 internal 访问修饰符的任何成员可以被定义在该成员所定义的应用程序内的任何类或方法访问。

二、继承

继承是面向对象程序设计中最重要的概念之一。继承允许我们根据一个类来定义另一个类,这使得创建和维护应用程序变得更容易,同时也有利于重用代码和节省开发时间。

当创建一个类时,我们不需要完全重新编写新的数据成员和成员函数,只需要设计一个新的类,让它继承已有的类的成员即可。这个已有的类被称为的基类,这个新写的类被称为派生类。

继承的思想实现了属于关系。例如,哺乳动物属于动物,人属于哺乳动物,因此人属于动物。

1.基类和派生类

一个类可以派生自多个类或接口,这意味着它可以从多个基类或接口继承数据和函数。

2.基类的初始化

派生类继承了基类的成员变量和成员方法。因此父类对象应在子类对象创建之前被创建。我们可以在成员初始化列表中进行父类的初始化。

3.C# 多重继承

多重继承指的是一个类别可以同时从多于一个父类继承行为与特征的功能。与单一继承相对,单一继承指一个类别只可以继承自一个父类。

三、多态

多态是同一个行为具有多个不同表现形式或形态的能力,或者说不同的对象对同一消息作出不同的响应。

1.多态性意味着有多重形式。在面向对象编程范式中,多态性往往表现为"一个接口,多个功能"。

2.多态性可以是静态的也可以是动态的。在静态多态性中,函数的响应是在编译时发生的。在动态多态性中,函数的响应是在运行时发生的。

3.在C#中,每个类型都是多态的,因为包括用户定义类型在内的所有类型都继承自 Object。

C#--封装、继承、多态相关推荐

  1. Java继承_Hachi君浅聊Java三大特性之 封装 继承 多态

    Hello,大家好~我是你们的Hachi君,一个来自某学院的资深java小白.最近利用暑假的时间,修得满腔java语言学习心得.今天小宇宙终于要爆发了,决定在知乎上来一场根本停不下来的Hachi君个人 ...

  2. python多态的三种表现形式_python小结----面向对象的三大特征(封装,继承,多态)

    面向对象的三大特征: 封装,继承,多态 面向对象的编程思想核心:高类聚,低耦合–程序的设计模式范畴 封装 什么是封装: 在面向对象编程的思想中,对代码进行高度封装,封装又叫包装 封装就是指将数据或者函 ...

  3. python 参数类型的多态_【Python】面向对象:类与对象\封装\继承\多态

    六.Python面向对象--类与对象\封装\继承\多态 1.什么是面向对象编程 1.1 程序设计的范式:程序可控,易于理解 1.2 抽象并建立对象模型 1.3 程序是不同对象相互调用的逻辑.每个对象在 ...

  4. python--编写程序:实现乐手弹奏乐器,乐手可以弹奏不同的乐器而发出不同的声音------使用类的封装继承多态的问题/使用面向对象的思想,设计自定义类,描述出租车和家用轿车的信息

    编写程序:实现乐手弹奏乐器,乐手可以弹奏不同的乐器而发出不同的声音 ------使用类的封装继承多态的问题 class Instrumnet():#乐器类def make_sound(self):pa ...

  5. c语言编程 菲薄拉,C语言设计模式-封装-继承-多态

    快过年了,手头的工作慢慢也就少了,所以,研究技术的时间就多了很多时间,前些天在CSDN一博客看到有大牛在讨论C的设计模式,正好看到了,我也有兴趣转发,修改,研究一下. 记得读大学的时候,老师就告诉我们 ...

  6. 大数据笔记8—java基础篇4(面向对象-封装-继承-多态)

    面向对象 一.面向对象 1.面向过程 1.2.举例 1.3.总结 二.面向对象 1.简述 2.举例 3.思想特点 2.1.类的定义格式 2.1.1.简述 2.2.2.格式 2.3.3.示例 三.类的使 ...

  7. 小白理解——封装继承多态

                                      一.封装 是什么:首先是抽象,把事物抽象成一个类,其次才是封装.对外表示为一个对象,隐藏对象的属性和动作实现的细节,仅对外公开接口. ...

  8. Day55-每日一道Java面试题-Java 面向对象编程三大特性: 封装 继承 多态

    Java 面向对象编程三大特性: 封装 继承 多态 封装 封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果属性不想被外界访问,我们大可不必提供方法给外界访问.但是如果一个类没有 ...

  9. 面向对象 编程及面向对象三大属性:封装 继承 多态

    面向对象 面向对象(Object Oriented,OO)是软件开发方法.面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统.交互式界面.应用结构.应用平台.分布式系统.网络管理结构. ...

  10. 白话文带你了解 封装 继承 多态

    这里讲的仅仅是带你理解 封装 继承 多态 染好您可以移步去别的文章学习具体的实现 (只是个人理解 您可以不爱,请别伤害哦!) 首先你要知道 java是面向对象的,说白了就是我拿你当个人,请认清你的地位 ...

最新文章

  1. Qt中文手册 之 QTreeWidgetItem
  2. LeetCode实战:数组中的第K个最大元素
  3. PHP学习笔记-PHP语言基础2
  4. FILO微型计算机,IBM-PC微机组成原理(ppt48)-咨询报告【PPT课件】
  5. C++ 学习笔记之——输入和输出
  6. [网络安全自学篇] 六十五.Vulnhub靶机渗透之环境搭建及JIS-CTF入门和蚁剑提权示例(一)
  7. CF-525E(E. Anya and Cubes) Meet-in-the-Middle
  8. 访问被拒绝:“microsoft.web.ui.webcontrols”的解决办法
  9. 程序员能自己独立进行程序开发,为何要去公司上班呢?真相出来了!
  10. 【Spring笔记】依赖注入
  11. selenium 简介 及浏览器配置
  12. Apache Commons CLI 开发命令行工具示例
  13. element实现table表格序号递增的效果
  14. ps提示没有足够的ram
  15. 硬件设计4---什么是电感、磁珠?
  16. 网吧克隆——XP系统母盘制作全攻略
  17. 计算机体系结构——名词解释
  18. 计算机考研数学复试时间,数学专业考研准备多久
  19. 妹子找你修电脑,按照这几步操作,你就是黑客大佬!
  20. vmware linux访问windowsxp下的文件

热门文章

  1. 随机重命名MP3文件
  2. 信息系统项目管理师-风险管理知识点
  3. cout的输出格式初探
  4. .NET 中 如果一个Task A正在await另一个Task B,那么Task A是什么状态
  5. TP框架中同时使用“or”和“and”
  6. Spring容器装饰者模式应用之实现业务类与服务类自由组合的解决方式
  7. 通知公告阅读日志构建说明
  8. nginx+passenger下504 Gateway-Timeout问题的解决办法
  9. Web推流,Webrtc网页推流rtmp在教学直播录制中应用
  10. 初学C++正则表达式(regex)