C#高级(一)面向对象

 

对于面向对象,有N多大师写过N多文字。我也不敢妄言。就简单说说自己的认识。

我们先来看看“对象”,什么是对象?我们在现实生活中所能看到的一切都可以称为对象。比如,企业、医院、宠物、植物、人。。。等等。在面向对象编程中,对象往往被当作一个类,类有属性和行为。我们以医院为例来说,医院有医生,有护士等,在医院可以做CTB超等。在面向对象编程中,我们定义一个hospital 类,其有属性(医生,护士)和行为(做CT,B超)。这就是一个简单的面向对象编程。

       其实,我们不光可以把医院做为一个类,我们还可以把医生做为一个类,医生有其属性(年龄,姓名,性别等)和其行为(检查病人,开处方,做手术等)。甚至我们可以把儿科医生定义为一个类,同样,骨科,外科,内科等医生,我们都可以分别定义为一个类,但这些类都具有同样的属性(年龄,姓名,性别等)甚至行为,难道每个类我们都要依次定义这些属性吗?答案是否定的。

       我们可以定义一个医生类,定义这些共有属性和行为。儿科医生,骨科医生等都继承自这个医生类,这样就具有了医生类的所有属性和行为。这在面向对象编程中被称为继承。

       我们再来看一个例子。

       人,有白人,黑人,黄种人等。人有年龄,性别,会吃饭。狗有白毛的狗,有黑色的狗等,狗有年龄,性别,会吃饭,咬人。

       在这种情况下,我们可以把人定义为一个基类(有属性 年龄,性别和行为吃饭等),黑人,白人,黄种人都继承自“人”这个类。我们再“狗”定义为一个类(有属性 年龄,性别和行为吃饭,咬人等),白狗,黑狗都继承于这个“狗”类。

       在这里,我们可以看到,狗所具有的一些属性在“人”这个类里面已经具有了,我们没有必要重新在“狗”类中定义的,“狗”类中只需要定义其独特的行为或属性,比如:咬人。而黑狗,白狗等继承自“人”和“狗”这两个类。这样就不存在重复定义的问题了。

       但在C#和Java中都不支持多重继承。那怎么办呢?这时候就诞生了一个“接口”的概念。一个类可以实现多个接口。在上例中,可以定义一个“动物”的接口(人也是一种动物嘛),在接口中定义人和狗共有的年龄,性别,吃饭等属性和行为。再定义一个“人”这样的基类,并实现这个接口,然后白人,黑人等类再继承“人”这个基类就可以了。狗也同理。

       呵呵。就简单的介绍这么些吧。可能说的不清楚,大家去google一下,有很多介绍面向对象的文字。

 

posted on   asp114  阅读(416)  评论(0编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述

导航

< 2008年11月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 1 2 3 4 5 6

统计

点击右上角即可分享
微信分享提示