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