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

一,封装:
首先我们可以把世界上任何一个东西都看作为一个对象,在这里就以人为例,那么一个人就是一个对象。
封装的意思是什么?
可以这样的去理解封装就是这个人要完成一件事情,他所需要的任何工具都带在了自己的身上,所需要的技术也都装在了自己的脑子里了。不需要借助于别人的力量就能完成这一件事情。这样做的好处就是如果我要吩咐这个人去完成一件事情,并不需要知道它是怎么完成的,也不需要协助他去完成,只知道结果,它完成了,也就行了,至于它是先做什么,后做什么我们也不需要知道,这样是有利于他尽力的去完成这些事情。
用书面的语言解释就是:
每个对象都是包含它能进行操作所需要的所有信息,所以对象不必依赖其它的对象来完成自己的操作。
二,继承:
还是以人为例子,我们知道每个人都会有一些共同的特征,都要做一些相同的事情。比如:人都有一个脑袋,二只胳膊,二条脚,这是共同的特征吧。生活上都要吃饭,喝水,这是要做的相同的事情。若我们现在要声明很多个人,每个人都会有这些特征,这样就需要去写很多重复的代码?因此我们先建一个人的父类,这个父类不代表一个具体的人,它只是一个拥有人所有共同特性的虚拟的人。下次我们要实例化一个具体的人的时候,只需继承上面这个“虚拟的人”,他就拥有了人的所有共同特性。通过继承的方法重复的代码就不用写了。
实际上继承的目的不仅仅是为了节省代码,它还有实现后面的多态的功能。一般的初学者只需要了解继承可以少写很多代码,在项目中可以不断的去学习。
利用书面的一个解释如下:
对象的继承代表一种"is-a"的关系,我们假如两个对象A和B,如果可以描述为"B就是A",那么则表示B可以继承自A。
需要注意的是:
如果A继承了B,那么A不仅拥有了B除私有的特性外的所有特性,A还可以拥有自己独特的特性。在上面的人的例子中,一个继承了“虚拟的人”,那么他除了有一个脑袋,二只胳膊,二条脚,要吃饭喝水外,他可能还会编程。因此编程就是他独特的特性了,并不是每个人都会编程的。
三:什么是多态:
有多态之前必须要有继承,需要了解清楚的是只有多个类同时继承了同一个类,才有多态这样的说法。
说开了人,就用人的例子,在前面我们有说过人都要做“吃饭”这样一个相同的事情。“吃饭”这个事情,在类中的体现就是方法了。因为是人都是要做的,因此我们在“虚拟的人”中写好了这个方法之后,吃饭方法都不同,有用筷的也有用叉的,有要吃米饭的也有要吃面的。所以如果我们要描述不同人的吃饭的过程,就要把这个过程放到具体的子类中去了,同样的道理,子类都有不同的实现方式,这个意思就是多态了,多态有助于程序的灵活性。
需要注意的是:子类中如果重写了父类的方法(多态),那么父类中的这个方法是不会再调用。
编程语言概念性的东西还是需要在实践中多点去理解的,相信大家通过自己的话,来去理解面向对象的特征会简单许多,如果是看原文的专业介绍的话,理解起来还是有一点的困难的。
C#学习基础,面向对象的三大特征的更多相关文章
- Java学习:面向对象的三大特征:封装性、继承性、多态性之继承性
面向对象的三大特征:封装性.继承性.多态性. 继承 继承是多态的前提 ,如果没有继承,就没有多态. 继承主要解决的问题就是:共性抽取. 继承关系当中的特点: 子类可以拥有父类的“内容” 子类还可以拥有 ...
- python基础-面向对象的三大特征
继承 单继承 父类 基类 子类 派生类 继承:是面向对象软件技术当中的一个概念,如果一个类别A“继承自”另一个类别B,就把这个A称为“B的子类别”,而把B称为“A的父类别”也可以称“B是A的超类”. ...
- C#学习笔记7:多态是面向对象的三大特征(封装、继承、多态)之一
多态: 多态是面向对象的三大特征(封装.继承.多态)之一. 什么是多态? 一个对象表现出多种状态. 多态的实现方法: 1.虚方法: 2.抽象方法: 3.接口. PS:New 关键词可以隐藏父类的方法. ...
- Java面向对象的三大特征
Java面向对象的三大特征 java面向对象的三大特征:“封装.继承.多态”.更多Java技术知识,请登陆疯狂软件教育官网.微信搜索微信号:疯狂软件,参加2015年优惠活动,有机会获得优惠劵和代金劵. ...
- OC面向对象的三大特征
OC面向对象的三大特征 1.OC面向对象的三大特封装 1)封装:完整的说是成员变量的封装. 2)在成语方法里面的成员变量最好不要使用@public这样会直接暴露在外面被别人随随便便修改,封装的方法还可 ...
- 解析PHP面向对象的三大特征
class BenHang extends Card{ /*构造函数与及构造的继承*/ function __construct($cardno,$pwd, $name,$money){ parent ...
- 全面解析PHP面向对象的三大特征
PHP面向对象的三大特征: 继承,封装,多态 一.继承 1.如何实现继承? 给子类使用extends关键字,让子类继承父类: class Student extends Person{} 2.实现继承 ...
- Java基础-面向对象第三大特性之多态(polymorphism)
Java基础-面向对象第三大特性之多态(polymorphism) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.多态概述 多态是继封装,继承之后,面向对象的第三大特性,多态的 ...
- Java面向对象的三大特征和五大原则
Java面向对象的三大特征 封装 封装(Encapsulation)是指属性私有化,根据需要提供setter和getter方法来访问属性.即隐藏具体属性和实现细节,仅对外开放接口,控制程序中属性的访问 ...
- Python面向对象初始(三大特征,多态,继承,封装)
Python面向对象的初始 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点是:极大的降低了写程序的 ...
随机推荐
- unittest框架
在我们真正的编写测试用例之前,我们需要了解一下测试框架. unittest是python自带的单元测试框架,尽管其主要是为单元测试服务的,但我们也可以用它来做接口的自动化测试. unittest框架为 ...
- ymPrompt.js消息提示组件
转载:https://www.cnblogs.com/linzheng/archive/2010/11/15/1878058.html 使用说明: 1.在页面中引入ymPrompt.js.如:< ...
- management & Actuator
self define indicator https://docs.spring.io/spring-boot/docs/current/reference/html/production-read ...
- 转 python3中SQLLIT编码与解码之Unicode与bytes
#########sample########## sqlite3.OperationalError: Could not decode to UTF-8 column 'logtype' with ...
- app常见测试点
安装与卸载: ●应用是否可以在IOS不同系统版本或android不同系统版本上安装(有的系统版本过低,应用不能适配) ●软件安装后是否可以正常运行,安装后的文件夹及文件是否可以写到指定的目录里. ●安 ...
- android Activity启动过程(四)startActivityUncheckedLocked
final int startActivityUncheckedLocked(ActivityRecord r, ActivityRecord sourceRecord, IVoiceInteract ...
- informix(南大通用)sql语法的差异
1.create view 444(...) as select ...from... 2.insert into select.......union select 不支持 请分开写 ...
- [转]Knockoutjs快速入门
本文转自:http://www.cnblogs.com/yinzixin/archive/2012/12/21/2827356.html Knockoutjs是一个JavaScript实现的MVVM框 ...
- 前台js escape及后台C# Server.UrlEncode 对QueryString传参的含~!@#$%^&*等特殊字符的处理
通常情况下,我们在List列表页面,会包含Create,Edit,Delete等操作按钮, 而通常的处理是: Create按钮跳转到DataCreate.aspx Edit按钮跳转到DataEdit. ...
- OpenStack Weekly Rank 2015.07.27
Module Reviews Drafted Blueprints Completed Blueprints Filed Bugs Resolved Bugs Cinder 7 1 1 7 10 Sw ...