学习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. Canvas制作动态进度加载水球

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. hdu1686 KMP 求在字符串A中字符串B出现的次数

    Oulipo Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  3. MVC中Cookies的简单读写操作

    写入 public static void WriteCookie(string cn, string cv, DateTime Time) { HttpCookie cookie = new Htt ...

  4. Juniper SRX550防火墙web页面CPU达到100%的故障解决办法

    Juniper SRX550防火墙web页面CPU达到100%的故障解决办法 利用telnet远程连接主机,对web页面注销重新登录即可,在配置中输入命令:run restart web-manage ...

  5. c++从txt中读取数据,数据并不是一行路径(实用)

    #include <iostream>#include <fstream>#include <string> using namespace std; //输出空行 ...

  6. Turn.js 实现翻书效果

    Turn.js的官方网址: http://www.turnjs.com/ 官网上运行demo如下,大家主要关注是 属性使用: <!DOCTYPE html> <html> &l ...

  7. python单元测试框架-unittest(二)之断言

    断言内容是自动化脚本的重要内容,正确设置断言以后才能帮助我们判断测试用例执行结果. 断言方法 assertEqual(a, b) 判断a==b assertNotEqual(a, b) 判断a!=b ...

  8. JMeter远程分布式联机性能测试

    测试环境 apache-jmeter-2.13 Java JDK版本:1.8 1.  JMeter分布式测试简介 当一个JMeter客户端因网络限制等因素,无法模拟足够的用户对服务器施压时,需要用到J ...

  9. Quartz使用(3) - Quartz核心接口Trigger

    Trigger最常用的有两种SimpleTrigger和CronTrigger,首先介绍Trigger的一些基础的信息,然后会详细描述这两种Trigger. 1. 通用Trigger属性 quartz ...

  10. HDU 4081—— Qin Shi Huang's National Road System——————【次小生成树、prim】

    Qin Shi Huang's National Road System Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/3 ...