1
2
3
4
5
6
7

继承

发布时间:2017-02-28 15:13   发布人:焦卫峰   浏览次数:572

1.继承

继承有两种截然不同的继承类型:类继承和接口继承。

类继承:表示一个类型派生于一个基类型,拥有该基类型的所有成员字段和函数。在类继承中,派生类的每个函数采用基类的实现代码,除非在派生类型的定义中重写该函数。

接口继承:表示一个类只继承了函数的签名,没有继承任何实现代码。在需要指定该类具有某些可用的特性时,最好使用这种继承。

一个类只能有唯一的一个父类,而不能同时继承多个。但是可以继承多个接口。

 

继承可以重用代码,实现软件模块的可复用性和可扩充性。

新定义的派生类(子类)可以继承已有的基类(父类)的特征(字段&属性)和能力(方法),而且可以加入新的特性或者修改已有的特性。

2.protected

在派生类中不能使用基类的私有成员。

protected 成员虽然不能被外界使用,但可以被派生类使用。

3.构造函数的执行顺序

一个类如果不声明构造函数,c#将自动生成默认的构造函数;一旦声明构造函数,不产生默认的构造函数。

1)调用派生类的构造函数时,首先调用其基类的构造函数,一直到Object为止。

2)不管派生类上使用默认或者是非默认的构造函数,一般都要调用基类的默认构造函数。

3)定义类时如果要定义构造函数,必须显式定义一默认的构造函数。

4)base关键字可以指定调用基类中具有指定参数的构造函数,它放在构造函数的后面。

public B():base(5){

}

4.Base关键字

调用父类的构造函数(:base())

调用父类的成员(base.函数名称(),this.函数名称())

5.Object类

C#中所有的类都直接或间接继承于 Object 类,如果在定义类时没有指定基类,编译器就会自动使它继承于Object类。

C#专门设计了object关键字,它相当于Object的别名。

 

Object 类中定义了 8 个公有虚方法。Object类的重要方法:

ToString()方法:返回对象的字符串表示

Equals(object obj):比较两个对象是否相等