学习C#编程,相信大家除了经常接触的是hello world之外,更多的是进一步的去熟悉这门语言的基本特征,以及有哪些概念是我们必要掌握了解的,相信大家都是会知道面向对象的三大特性分别是:封装,继承,多态。但这三大特性分别是什么意思呢?专业上的理解是比较难的,我们只需要用自己的话来理解一下,是更加容易理解,想要学习开发?还是从基础的学起。

  一,封装:

  首先我们可以把世界上任何一个东西都看作为一个对象,在这里就以人为例,那么一个人就是一个对象。

  封装的意思是什么?

  可以这样的去理解封装就是这个人要完成一件事情,他所需要的任何工具都带在了自己的身上,所需要的技术也都装在了自己的脑子里了。不需要借助于别人的力量就能完成这一件事情。这样做的好处就是如果我要吩咐这个人去完成一件事情,并不需要知道它是怎么完成的,也不需要协助他去完成,只知道结果,它完成了,也就行了,至于它是先做什么,后做什么我们也不需要知道,这样是有利于他尽力的去完成这些事情。

  用书面的语言解释就是:

  每个对象都是包含它能进行操作所需要的所有信息,所以对象不必依赖其它的对象来完成自己的操作。

  二,继承:

  还是以人为例子,我们知道每个人都会有一些共同的特征,都要做一些相同的事情。比如:人都有一个脑袋,二只胳膊,二条脚,这是共同的特征吧。生活上都要吃饭,喝水,这是要做的相同的事情。若我们现在要声明很多个人,每个人都会有这些特征,这样就需要去写很多重复的代码?因此我们先建一个人的父类,这个父类不代表一个具体的人,它只是一个拥有人所有共同特性的虚拟的人。下次我们要实例化一个具体的人的时候,只需继承上面这个“虚拟的人”,他就拥有了人的所有共同特性。通过继承的方法重复的代码就不用写了。

  实际上继承的目的不仅仅是为了节省代码,它还有实现后面的多态的功能。一般的初学者只需要了解继承可以少写很多代码,在项目中可以不断的去学习。

  利用书面的一个解释如下:

  对象的继承代表一种"is-a"的关系,我们假如两个对象A和B,如果可以描述为"B就是A",那么则表示B可以继承自A。

  需要注意的是:

  如果A继承了B,那么A不仅拥有了B除私有的特性外的所有特性,A还可以拥有自己独特的特性。在上面的人的例子中,一个继承了“虚拟的人”,那么他除了有一个脑袋,二只胳膊,二条脚,要吃饭喝水外,他可能还会编程。因此编程就是他独特的特性了,并不是每个人都会编程的。

  三:什么是多态:

  有多态之前必须要有继承,需要了解清楚的是只有多个类同时继承了同一个类,才有多态这样的说法。

  说开了人,就用人的例子,在前面我们有说过人都要做“吃饭”这样一个相同的事情。“吃饭”这个事情,在类中的体现就是方法了。因为是人都是要做的,因此我们在“虚拟的人”中写好了这个方法之后,吃饭方法都不同,有用筷的也有用叉的,有要吃米饭的也有要吃面的。所以如果我们要描述不同人的吃饭的过程,就要把这个过程放到具体的子类中去了,同样的道理,子类都有不同的实现方式,这个意思就是多态了,多态有助于程序的灵活性。

  需要注意的是:子类中如果重写了父类的方法(多态),那么父类中的这个方法是不会再调用。

  编程语言概念性的东西还是需要在实践中多点去理解的,相信大家通过自己的话,来去理解面向对象的特征会简单许多,如果是看原文的专业介绍的话,理解起来还是有一点的困难的。

C#学习基础,面向对象的三大特征的更多相关文章

  1. Java学习:面向对象的三大特征:封装性、继承性、多态性之继承性

    面向对象的三大特征:封装性.继承性.多态性. 继承 继承是多态的前提 ,如果没有继承,就没有多态. 继承主要解决的问题就是:共性抽取. 继承关系当中的特点: 子类可以拥有父类的“内容” 子类还可以拥有 ...

  2. python基础-面向对象的三大特征

    继承 单继承 父类 基类 子类 派生类 继承:是面向对象软件技术当中的一个概念,如果一个类别A“继承自”另一个类别B,就把这个A称为“B的子类别”,而把B称为“A的父类别”也可以称“B是A的超类”. ...

  3. C#学习笔记7:多态是面向对象的三大特征(封装、继承、多态)之一

    多态: 多态是面向对象的三大特征(封装.继承.多态)之一. 什么是多态? 一个对象表现出多种状态. 多态的实现方法: 1.虚方法: 2.抽象方法: 3.接口. PS:New 关键词可以隐藏父类的方法. ...

  4. Java面向对象的三大特征

    Java面向对象的三大特征 java面向对象的三大特征:“封装.继承.多态”.更多Java技术知识,请登陆疯狂软件教育官网.微信搜索微信号:疯狂软件,参加2015年优惠活动,有机会获得优惠劵和代金劵. ...

  5. OC面向对象的三大特征

    OC面向对象的三大特征 1.OC面向对象的三大特封装 1)封装:完整的说是成员变量的封装. 2)在成语方法里面的成员变量最好不要使用@public这样会直接暴露在外面被别人随随便便修改,封装的方法还可 ...

  6. 解析PHP面向对象的三大特征

    class BenHang extends Card{ /*构造函数与及构造的继承*/ function __construct($cardno,$pwd, $name,$money){ parent ...

  7. 全面解析PHP面向对象的三大特征

    PHP面向对象的三大特征: 继承,封装,多态 一.继承 1.如何实现继承? 给子类使用extends关键字,让子类继承父类: class Student extends Person{} 2.实现继承 ...

  8. Java基础-面向对象第三大特性之多态(polymorphism )

    Java基础-面向对象第三大特性之多态(polymorphism) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.多态概述 多态是继封装,继承之后,面向对象的第三大特性,多态的 ...

  9. Java面向对象的三大特征和五大原则

    Java面向对象的三大特征 封装 封装(Encapsulation)是指属性私有化,根据需要提供setter和getter方法来访问属性.即隐藏具体属性和实现细节,仅对外开放接口,控制程序中属性的访问 ...

  10. Python面向对象初始(三大特征,多态,继承,封装)

    Python面向对象的初始 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点是:极大的降低了写程序的 ...

随机推荐

  1. hdu6299 Balanced Sequence 贪心

    题目传送门 题目大意:给出n个字符串,定义了平衡字符串,问这些字符串组合之后,最长的平衡字符子序列的长度. 思路: 首先肯定要把所有字符串先处理成全是不合法的,记录右括号的数量为a,左括号的数量为b, ...

  2. 321B

    MCMF必须是满足流量最大为前提下的最小费用流(这里是最大费用流) 因此还必须不断地枚举m的流量才行 #include<iostream> #include<algorithm> ...

  3. hdu 6288(二分法加精度处理问题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6288 题意:给出a,b,k,n可满足(n^a)*(⌈log2n⌉)^b<=k ,求最大的n值三个 ...

  4. QQ号_保存_20180124

    1.1337978907 (密码:33+我的名字全小写全部拼音) 2. 3. 4. 5.

  5. my.答题

    20170821增加: http://www.119you.com/mhxy/yxgl/738653.shtml 1.三界奇缘 http://my.netease.com/forum.php?mod= ...

  6. python django 基本测试 及调试

    #########20181110from django.db import modelsfrom blog.models import Article, Author, TagAuthor.obje ...

  7. Typora中给代码块设置快捷键

    Tpyore中大部分的操作都是有快捷键的.但是有那么几个常用的却没有快捷键.就比如代码块,这个常用的操作,还有有序无需列表. 下边教会你怎么设置快捷键,打开设置,Preferences[偏好设置],然 ...

  8. SpringBoot初始教程之Servlet、Filter、Listener配置详解

    1.介绍 通过之前的文章来看,SpringBoot涵盖了很多配置,但是往往一些配置是采用原生的Servlet进行的,但是在SpringBoot中不需要配置web.xml的 因为有可能打包之后是一个ja ...

  9. array.map

    定义和用法 map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值. map() 方法按照原始数组元素顺序依次处理元素. 注意: map() 不会对空数组进行检测. 注意: ma ...

  10. How to Fold a Julia Fractal

    How to Fold a Julia FractalA tale of numbers that like to turn http://acko.net/blog/how-to-fold-a-ju ...