面向对象的高级语言:C#高级(一)面向对象
对于面向对象
![](/icons/96691dou.gif)
有N多大师写过N多文字
![](/icons/96691dou2.gif)
我也不敢妄言
![](/icons/96691dou2.gif)
就简单说说自己
![](/icons/96691de.gif)
认识
![](/icons/96691dou2.gif)
我们先来看看“对象”
![](/icons/96691dou.gif)
什么是对象?我们在现实生活中所能看到
![](/icons/96691de.gif)
![](/icons/96691yi.gif)
切都可以称为对象
![](/icons/96691dou2.gif)
比如
![](/icons/96691dou.gif)
企业、医院、宠物、植物、人
![](/icons/96691dou2.gif)
![](/icons/96691dou2.gif)
![](/icons/96691dou2.gif)
等等
![](/icons/96691dou2.gif)
在面向对象编程中
![](/icons/96691dou.gif)
对象往往被当作
![](/icons/96691yi.gif)
个类
![](/icons/96691dou.gif)
类有属性和行为
![](/icons/96691dou2.gif)
我们以医院为例来说
![](/icons/96691dou.gif)
医院有医生
![](/icons/96691dou.gif)
有护士等
![](/icons/96691dou.gif)
在医院可以做CT
![](/icons/96691dou.gif)
B超等
![](/icons/96691dou2.gif)
在面向对象编程中
![](/icons/96691dou.gif)
我们定义
![](/icons/96691yi.gif)
个hospital 类
![](/icons/96691dou.gif)
其有属性(医生
![](/icons/96691dou.gif)
护士)和行为(做CT,做B超)
![](/icons/96691dou2.gif)
这就是
![](/icons/96691yi.gif)
个简单
![](/icons/96691de.gif)
面向对象编程
![](/icons/96691dou2.gif)
其实
![](/icons/96691dou.gif)
我们不光可以把医院做为
![](/icons/96691yi.gif)
个类
![](/icons/96691dou.gif)
我们还可以把医生做为
![](/icons/96691yi.gif)
个类
![](/icons/96691dou.gif)
医生有其属性(年龄
![](/icons/96691dou.gif)
姓名
![](/icons/96691dou.gif)
性别等)和其行为(检查病人
![](/icons/96691dou.gif)
开处方
![](/icons/96691dou.gif)
做手术等)
![](/icons/96691dou2.gif)
甚至我们可以把儿科医生定义为
![](/icons/96691yi.gif)
个类
![](/icons/96691dou.gif)
同样
![](/icons/96691dou.gif)
骨科
![](/icons/96691dou.gif)
外科
![](/icons/96691dou.gif)
内科等医生
![](/icons/96691dou.gif)
我们都可以分别定义为
![](/icons/96691yi.gif)
个类
![](/icons/96691dou.gif)
但这些类都具有同样
![](/icons/96691de.gif)
属性(年龄
![](/icons/96691dou.gif)
姓名
![](/icons/96691dou.gif)
性别等)甚至行为
![](/icons/96691dou.gif)
难道每个类我们都要依次定义这些属性吗?答案是否定
![](/icons/96691de.gif)
![](/icons/96691dou2.gif)
我们可以定义
![](/icons/96691yi.gif)
个医生类
![](/icons/96691dou.gif)
定义这些共有属性和行为
![](/icons/96691dou2.gif)
儿科医生
![](/icons/96691dou.gif)
骨科医生等都继承自这个医生类
![](/icons/96691dou.gif)
这样就具有了医生类
![](/icons/96691de.gif)
所有属性和行为
![](/icons/96691dou2.gif)
这在面向对象编程中被称为继承
![](/icons/96691dou2.gif)
我们再来看
![](/icons/96691yi.gif)
个例子
![](/icons/96691dou2.gif)
人
![](/icons/96691dou.gif)
有白人
![](/icons/96691dou.gif)
黑人
![](/icons/96691dou.gif)
黄种人等
![](/icons/96691dou2.gif)
人有年龄
![](/icons/96691dou.gif)
性别
![](/icons/96691dou.gif)
会吃饭
![](/icons/96691dou2.gif)
狗有白毛
![](/icons/96691de.gif)
狗
![](/icons/96691dou.gif)
有黑色
![](/icons/96691de.gif)
狗等
![](/icons/96691dou.gif)
狗有年龄
![](/icons/96691dou.gif)
性别
![](/icons/96691dou.gif)
会吃饭
![](/icons/96691dou.gif)
咬人
![](/icons/96691dou2.gif)
在这种情况下
![](/icons/96691dou.gif)
我们可以把人定义为
![](/icons/96691yi.gif)
个基类(有属性 年龄
![](/icons/96691dou.gif)
性别和行为吃饭等)
![](/icons/96691dou.gif)
黑人
![](/icons/96691dou.gif)
白人
![](/icons/96691dou.gif)
黄种人都继承自“人”这个类
![](/icons/96691dou2.gif)
我们再“狗”定义为
![](/icons/96691yi.gif)
个类(有属性 年龄
![](/icons/96691dou.gif)
性别和行为吃饭
![](/icons/96691dou.gif)
咬人等)
![](/icons/96691dou.gif)
白狗
![](/icons/96691dou.gif)
黑狗都继承于这个“狗”类
![](/icons/96691dou2.gif)
在这里
![](/icons/96691dou.gif)
我们可以看到
![](/icons/96691dou.gif)
狗所具有
![](/icons/96691de.gif)
![](/icons/96691yi.gif)
些属性在“人”这个类里面已经具有了
![](/icons/96691dou.gif)
我们没有必要重新在“狗”类中定义
![](/icons/96691de.gif)
![](/icons/96691dou.gif)
“狗”类中只需要定义其独特
![](/icons/96691de.gif)
行为或属性
![](/icons/96691dou.gif)
比如:咬人
![](/icons/96691dou2.gif)
而黑狗
![](/icons/96691dou.gif)
白狗等继承自“人”和“狗”这两个类
![](/icons/96691dou2.gif)
这样就不存在重复定义
![](/icons/96691de.gif)
问题了
![](/icons/96691dou2.gif)
但在C#和Java中都不支持多重继承
![](/icons/96691dou2.gif)
那如何办呢?这时候就诞生了
![](/icons/96691yi.gif)
个“接口”
![](/icons/96691de.gif)
概念
![](/icons/96691dou2.gif)
![](/icons/96691yi.gif)
个类可以实现多个接口
![](/icons/96691dou2.gif)
在上例中
![](/icons/96691dou.gif)
可以定义
![](/icons/96691yi.gif)
个“动物”
![](/icons/96691de.gif)
接口(人也是
![](/icons/96691yi.gif)
种动物嘛)
![](/icons/96691dou.gif)
在接口中定义人和狗共有
![](/icons/96691de.gif)
年龄
![](/icons/96691dou.gif)
性别
![](/icons/96691dou.gif)
吃饭等属性和行为
![](/icons/96691dou2.gif)
再定义
![](/icons/96691yi.gif)
个“人”这样
![](/icons/96691de.gif)
基类
![](/icons/96691dou.gif)
并实现这个接口
![](/icons/96691dou.gif)
然后白人
![](/icons/96691dou.gif)
黑人等类再继承“人”这个基类就可以了
![](/icons/96691dou2.gif)
狗也同理
![](/icons/96691dou2.gif)
呵呵
![](/icons/96691dou2.gif)
就简单
![](/icons/96691de.gif)
介绍这么些吧
![](/icons/96691dou2.gif)
可能说
![](/icons/96691de.gif)
不清楚
![](/icons/96691dou.gif)
大家去google
![](/icons/96691yi.gif)
下
![](/icons/96691dou.gif)
有很多介绍面向对象
![](/icons/96691de.gif)
文字
延伸阅读
最新评论