码迷,mamicode.com
首页 > Windows程序 > 详细

C# 面向对象

时间:2017-06-16 13:27:05      阅读:269      评论:0      收藏:0      [点我收藏+]

标签:关键字   显示   派生   无法   str   strong   在家   重写   oid   

什么是面向对象:面向对象就是所以的操作都是基于对象,就好比如让车子走起来,走起来这个动作是车子这个对象的,车子.走起来。

面向对象的特性:三大特性“封装、继承、多态”

一、封装

1.1封装的概念:每个对象都包含有它能进行操作的所有信息,这个特性称为封装。这样的方法包含在类中,通过类的实例来实现。

1.2封装的优点:

A.良好的封装能够减少耦合(比如实现界面和逻辑分离)。

B.可以让类对外接口不变,内部可以实现自由的修改。

C.类具有清晰的对外接口,使用者只需调用,无需关心内部。

D.因为封装的类功能相对独立,因此能更好的实现代码复用。

E.可保护代码不被无意中破坏,通过私有字段等实现内部。(私有属性、方法)

 

二、继承

2.1继承的概念:当一个对象能够获取另一个对象的非私有属性、方法作为定义为自己的部分或全部时,我们称之为继承关系。在继承中,被继承的对象叫做父类或者基类,继承的对象称为子类或者派生类。一个类可以有多个派生类,也就是一个类可以被多个类继承.

2.2继承的特点:

A.子类(派生类)拥有父类(基类)所以的非私有属性、方法。//延续

B.子类可以拥有自己独特的特性(属性、方法)。//新增

C.子类可以以自己的方式实现父类的功能。//方法重写

2.3继承需要注意的地方

A.父类进行改变子类也会进行改变。

B.继承破坏了封装,父类的细节暴露给了子类,增加了耦合性。

C.父类的私有成员(属性、方法)子类是无法访问。

D.被“sealed”关键字修饰的类将不能被继承;

E.被“protected”修饰的成员或者数据可以直接被派生类访问,属于“可以在家族里分享的秘密”。

F.善用“base”关键字,显示调用合适的自定义基类构造函数而不是使用默认构造函数。

E。C#只能一个类直接继承一个类。

 

三、多态

3.1多态的概念:同一个操作用于不同的对象,会有不同的解释,产生不同的结果。这种特性称为多态性。

3.2多态的分类:编译时的多态(重载)、运行时的多态(重写)

重载(overload):重载指的是同一个类中有两个或多个名字相同但是参数(参数签名)不同的方法,(注:返回值不能区别函数是否重载),重载没有关键字。//方法名相同,参数或者返回类型不同

重写(override):重写是指子类对父类中虚函数或抽象函数的“覆盖”,重载也叫过载。//虚方法是用virtual关键字声明的方法

两种重写:

A.使用override关键字重写.public override void Eat(){}//覆盖父类方法

 

B.使用new关键字重写.public new void Eat(){}//隐藏父类方法

两者的区别在于如果我们使用override关键字,父类的方法被覆盖,A b = new B();b.Eat();执行的是B(子类)的Eat()方法,因为父类的被覆盖了(B继承于A )。

我们使用new的话,只是隐藏了父类的方法,方法还是会被执行,b.Eat();则执行的是A(父类)的Eat()方法。我们修改成B b = new B();b.Eat();执行的就是B(子类)的了。

 

 

C# 面向对象

标签:关键字   显示   派生   无法   str   strong   在家   重写   oid   

原文地址:http://www.cnblogs.com/UnrealEra/p/7026874.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!