继承有两种截然不同的继承类型:类继承和接口继承。
类继承:表示一个类型派生于一个基类型,拥有该基类型的所有成员字段和函数。在类继承中,派生类的每个函数采用基类的实现代码,除非在派生类型的定义中重写该函数。
接口继承:表示一个类只继承了函数的签名,没有继承任何实现代码。在需要指定该类具有某些可用的特性时,最好使用这种继承。
类的修饰符 class 类名{
类的成员(字段、属性、方法)
}
类的修饰符 class 类名:父类名 //只能是一个
类的修饰符 class 类名:父类名 /*只能是一个,可以没有*/,接口名/*可以是多个*/
一个类只能有唯一的一个父类,而不能同时继承多个。但是可以继承多个接口。
继承可以重用代码,实现软件模块的可复用性和可扩充性。
新定义的派生类(子类)可以继承已有的基类(父类)的特征(字段&属性)和能力(方法),而且可以加入新的特性或者修改已有的特性。
在派生类中不能使用基类的私有成员。
protected 成员虽然不能被外界使用,但可以被派生类使用。
一个类如果不声明构造函数,c#将自动生成默认的构造函数;一旦声明构造函数,不产生默认的构造函数。
1)调用派生类的构造函数时,首先调用其基类的构造函数,一直到Object为止。
2)不管派生类上使用默认或者是非默认的构造函数,一般都要调用基类的默认构造函数。
3)定义类时如果要定义构造函数,必须显式定义一默认的构造函数。
4)base关键字可以指定调用基类中具有指定参数的构造函数,它放在构造函数的后面。
public B():base(5){
}
调用父类的构造函数(:base())
调用父类的成员(base.函数名称(),this.函数名称())