rexian

咨询电话:023-6276-4481

热门文章

联系方式

电 话:023-6276-4481

邮箱:broiling@qq.com

地址:重庆市南岸区亚太商谷6幢25-2

当前位置:网站首页 > 技术文章 > C#继承

C#继承

编辑:pansiqin 发表时间:2018-01-23 12:30:05
pansiqin

继承是软件复用的一种形式。使用继承可以复用现有类的数据和行为,为其赋予新功能而创建出新类。

节省开发时间,重用经过实践检测和调试的高质量代码,提供系统的质量。

在现有类(基类、父类)上建立新类(派生类、子类)的处理过程称为继承。派生类能自动获得基类的除了构造函数和析构函数以外的所有成员,可以在派生类中添加新的属性和方法扩展其功能。[1] 

1.继承的定义和使用

在现有类(基类、父类)上建立新类(派生类、子类)的处理过程称为继承。派生类能自动获得基类的除了构造函数和析构函数以外的所有成员,可以在派生类中添加新的属性和方法扩展其功能。

<访问修饰符>class

派生类名:

基类名

{//类的代码}

继承的特性:

可传递性:C从B派生,B从A派生,那么C不仅继承B也继承A。

单一性:只能从一个基类中继承,不能同时继承多个基类继承中的访问修饰符base和this关键字基类的构造函数和析构函数不能被继承的。但可以使用关键字base来继承基类的构造函数。

C#中的base关键字代表基类,使用base关键字可以调用基类的构造函数、属性和方法。

2.方法的重载、重写和隐在基类和派生可以存在同名方法,这些同名的方法可以重载、重写和隐藏。

(1)重载(方法同名,但参数列表不同)

重载是在同一个作用域内发生(比如一个类里面),定义一系列同名方法,但是方法的参数列表不同,就是签名不同,签名由方法名和参数组成。能通过传递不同参数来决定到底调用哪一个同名方法。返回值类型不同步能构成重载,因为签名不包括返回值。同名方法返回值的类型要相同,要不不能重载。

(2)重写(方法同名,且参数列表相同)

基类方法中使用virtual关键字声明方法和派生类中使用override关键字声明方法名称相同,参数列表也相同。

基类方法和派生类方法的签名相同,实现了派生类重写基类中的同名方法

(3)隐藏

基类中的方法不声明virtual,在派生类中声明与基类同名时,需要使用new关键字,以隐藏基类同名方法。

3.统一的标准:接口

接口的定义:接口用来描述一种程序的规定,可定义属于任何类或结构的一组相关行为,接口可由方法、属性、事件、索引器、或这4种成员类型的任何组合构成。接口不能包含常数、字段、运算符、实例构造函数、析构函数或类型,也不能包含任何种类的静态成员。接口一定是公共的。

接口语法如下:

<访问修饰符>

interface

接口名{//接口主体}

接口的实现

C#中通常把派生类和基类的关系称为继承,类和接口的关系称为实现。接口不能定义构造函数,所以接口不能实例化。

接口的继承

C#中的派生类只能有一个基类,不支持类的多重继承,但可以继续承接多个接口,通过接口实现多继承性。

C#中接口可以多继承接口之间可以互相继承,普通类和抽象类可以继承自接口。一个类可以同时继承一个类和多个接口,但接口不能继承类。

4.抽象类和密封类

用来描述共性的类是抽象类,抽象类中不考虑具体实现,只确定必须具有的行为,即确定抽象方法。