C#面向对象的三大特性
下面是面向对象的本人解析的图片可以让你们更好的理解一下!!!
一,封装:
我们可以把世界上任何一个东西都看作为一个对象,那么我们这里以人为例,一个人就肯定是一个对象了。
那么封装是什么呢?
封装就是这个人要完成一件事情,他所需要的任何工具都带在了自己的身上,所需要的技术也都装在了自己的脑子里了。不需要借助于别人的力量就能完成这一件事情。这个有什么好处呢?好处就是如果我要吩咐这个人去完成一件事情,我不需要知道他是怎么完成的,也不需要协助他去完成,只要知道结果,他完成了就OK了。至于他是先干什么后干什么我不干涉,这有助于他更快更好的干好这件事情,我自己也省事。
书面的解释如下:
每个对象都包含它能进行操作所需要的所有信息,因此对象不必依赖其它的对象来完成自己的操作。
二,继承:
还以为人为例,我们每个人都会有一些共同的特征,都要做一些相同的事情。比如:人都有一个脑袋,二只胳膊,二条脚,这是共同的特征。都要吃饭,喝水,这是都要做的相同的事情。那么如果我们现在要声明很多个人,每个人都会有这些特征,那我不是要写很多重复的代码?所以我们可以先建一个人的父类,这个父类不代表一个具体的人,只是一个拥有人所有共同特性的虚拟的人。下次我们要实例化一个具体的人的时候,只需要将这个人继承上面这个“虚拟的人”,那么他就拥有了人的所有共同特性。这样,这些重复的代码我们就可以不写了。
当然,继承的目标不仅仅是为了节省代码,还有实现后面的多态的功能。初学者只需要了解继承可以少写很多代码就好了,余下的需要在项目中慢慢理解。
书面的解释如下:
对象的继承代表一种"is-a"的关系,假如两个对象A和B,如果可以描述为"B就是A",那么则表示B可以继承自A。
注意:
如果A继承了B,那么A不仅拥有了B除私有的特性外的所有特性,A还可以拥有自己独特的特性。比如上面人的这个例子,一个继承了 “虚拟的人”,那么他除了有一个脑袋,二只胳膊,二条脚,要吃饭喝水外,他可能还会编程。编程就是他独特的特性了,因为不是每个人都会编程的。
三,多态:
有多态之前必须要有继承,只有多个类同时继承了同一个类,才有多态这样的说法。
还是以人为例子,前面我们有说过人都要做“吃饭”这样一个相同的事情。“吃饭”这个事情,体现到类中就是方法了。因为是人都是要做的,所以我们在“虚拟的人”中写好了这个方法,但每个人都有不同的吃饭方法,有用筷的也有用叉的,有要吃米饭的也有要吃面食的。所以如果我们要描述不同人的吃饭的过程,就要把这个过程放到具体的子类中去了,因为每个人都不一样嘛。同样一个方法,子类都有不同的实现方式,这个就是多态了,多态有助于程序的灵活性。
注意:子类中如果重写了父类的方法(多态),那么父类中的这个方法将不会再调用。
C#面向对象的三大特性的更多相关文章
- 谈谈Java面向对象的三大特性
Java面向对象的三大特性就是指封装.继承.多态了. 一.封装: 概念:封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. (举例:笔记本电脑就是一个封装体,Java语言中最小的封装体就是函数 ...
- oc语言--面向对象的三大特性
一.封装 1.什么是封装 在程序上,隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别:将对象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的 ...
- OC面向对象的三大特性
一.面向对象的三大特性:封装(成员变量).继承和多态 1. set方法和get方法 1. set方法和get方法的使用场合 @public的成员可以被随意赋值,应该使用set方法和get方法来管理成员 ...
- java基础笔记(6)----面向对象的三大特性
简介:面向对象的三大特性就是封装,继承,多态,是面向对象的核心. 封装 简介:封装是类的边界,可以对数据起到保护作用 特性:属性私有,提供公开的get/set方法 属性私有:private 数据类型 ...
- C#基础知识之面向对象以及面向对象的三大特性
在C#基础知识之类和结构体中我详细记录了类.类成员.重载.重写.继承等知识总结.这里就记录一下对面向对象和面向对象三大特性的广义理解. 一.理解面向对象 类是面向对象编程的基本单元,面向对象思想其实就 ...
- Python面向对象3:面向对象的三大特性
面向对象的三大特性- 封装- 继承- 多态1 封装 - 封装就是对对象的成员进行访问限制- 封装的三个级别: - 公开,public - 受保护的,protected - 私有的,private - ...
- python 之面向对象的三大特性
面向对象的三大特性 继承 继承和组合 继承进阶 封装 封装(有待完善) 多态 多态
- JavaScript面向对象的三大特性
1.JavaScript面向对象的三大特性 JavaScript的三大特性:封装性.继承性.多态性. 2.JavaScript实现封装特性 在一些静态类型的语言如java中,本身语法就提供了这些功能. ...
- Python 面向对象(创建类和对象,面向对象的三大特性是指:封装、继承和多态,多态性)
概念: ...
- python基础学习Day17 面向对象的三大特性之继承、类与对象名称空间小试
一.课前回顾 类:具有相同属性和方法的一类事物 实例化:类名() 过程: 开辟了一块内存空间 执行init方法 封装属性 自动的把self返回给实例化对象的地方 对象:实例 一个实实在在存在的实体 组 ...
随机推荐
- POJ 3281:Dining(最大流)
http://poj.org/problem?id=3281 题意:有n头牛,f种食物,d种饮料,每头牛有fnum种喜欢的食物,dnum种喜欢的饮料,每种食物如果给一头牛吃了,那么另一个牛就不能吃这种 ...
- 正则表达式(http://tieba.baidu.com/p/882391125)
觉得不错,就记下来了 正则表达式30分钟入门教程版本:v2.31 (2009-4-11) 作者:deerchao 转载请注明来源30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你 ...
- Uva 10537 过路费
题目链接:http://vjudge.net/contest/143062#problem/C 题意: 给定一个无向图,大写字母是城市,小写字母是村庄,经过城市交过路费为当前货物的%5,路过村庄固定交 ...
- Python namedtuple
我们都知道Python中的tuple是一个非常高效的集合对象,但是我们只能通过索引的方式访问这个集合中的元素,比如下面的代码: Bob=('bob',30,'male') print'Represen ...
- Spring 框架下Controller 返回结果在EasyUI显示
这几天弄了一下java下的在后台返回数据到jsp页面上的显示: 总结一下: 首先后台方面: @RequestMapping(value="/searchByUserName") @ ...
- window打开服务的dos命令
window打开服务的dos命令 “开始”---> “运行”输入以下命令,或者Win + R,输入以下命令 对我比较有用的几个: 10. notepad--------打开记事本 31. ...
- zoj3416 Balanced Number
链接 这题纠结了好久,刚开始想到的是正解,不过想到可能会出现一个数支点不唯一的情况,这样就多算了,其实是我想多了,一个数只有一个支点. 这样就好像想到了,枚举支点的位置,保存力矩的状态. dp[i][ ...
- 软件测试--测试Demo
视频地址(第二课时):https://pan.baidu.com/s/1gfLVC2n 软件安装好了! 软件默认的浏览器是火狐. 如果需要IE,chrome,都在前一篇的安装包里有. 测试结果 视频里 ...
- SQL Server显式事务与隐式事务
事务是单个的工作单元.如果某一事务成功,则在该事务中进行的所有数据修改均会提交,成为数据库中的永久组成部分.如果事务遇到错误且必须取消或回滚,则所有数据库修改均被清除. SQL Server中有一下几 ...
- Android 如何解决数据库多线程锁的问题
防止多个线程又是读取又是写入 网上找到的方法: 对于这样的问题,解决的办法就是keep single sqlite connection,保持单个SqliteOpenHelper实例,同时对所有数据库 ...