第四章 继承
4.1 继承的类型
4.1.1 实现继承和接口继承
● 实现继承:表示一个类型派生于一个基类型,拥有该基类型的所有成员字段和函数。
● 接口继承:表示一个类型只继承了函数的签名,没有继承任何实现代码。
接口继承常被看做一种契约:
让类型派生于接口,来保证为客户提供某个功能。
4.1.2 多重继承
csharp不支持多重实现继承。
但同时又允许类型派生于多个接口。
4.1.3 结构和类
结构不支持实现继承,但支持接口继承。
4.2 实现继承
public class MyDerivedClass : MyBaseClass, IInterface1,
IInterface2
{
//etc.
}
*csharp不支持私有继承,因此基类名上并没用public或private限定符。
*csharp支持object关键字,它用作System.Object类的假名。
4.2.1 虚方法
把基类函数声明为virtual,该函数就可以在派生类中重写。
class MyBaseClass
{
public virtual string VirtualMethod()
{
return "This method is virtual and defined in MyBaseClass";
}
}
也可以声明属性为virtual。
public virtual string ForeName
{
get { return foreName; } <
4.1 继承的类型
4.1.1 实现继承和接口继承
● 实现继承:表示一个类型派生于一个基类型,拥有该基类型的所有成员字段和函数。
● 接口继承:表示一个类型只继承了函数的签名,没有继承任何实现代码。
接口继承常被看做一种契约:
让类型派生于接口,来保证为客户提供某个功能。
4.1.2 多重继承
csharp不支持多重实现继承。
但同时又允许类型派生于多个接口。
4.1.3 结构和类
结构不支持实现继承,但支持接口继承。
4.2 实现继承
public class MyDerivedClass : MyBaseClass, IInterface1,
IInterface2
{
//etc.
}
*csharp不支持私有继承,因此基类名上并没用public或private限定符。
*csharp支持object关键字,它用作System.Object类的假名。
4.2.1 虚方法
把基类函数声明为virtual,该函数就可以在派生类中重写。
class MyBaseClass
{
public virtual string VirtualMethod()
{
return "This method is virtual and defined in MyBaseClass";
}
}
也可以声明属性为virtual。
public virtual string ForeName
{
get { return foreName; } <