一.c#中继承分为实现继承和接口继承两种:
1.实现继承:表示一个类型派生于一个基类,这个类拥有基类所有的成员字段和函数。在实现继承中,派生类型采用基类的每个函数的实现代码,除非在派生类型的定义中指定重写某个函数的实现代码。在需要给现有的类型添加功能,或者多相关的类型共享一组重要的公共功能时,这种类型的继承是非常有用的。c#中每个类只可以继承一个基类。
2.接口继承:表示一个类型只继承函数的签名,没有继承任何实现代码。在需要指定该类型具有某些可用的特性时,最好使用这种类型的继承。c#中每个类可以实现多个接口。
二.结构和类的继承:
1.结构派生自System.ValueType,它不支持实现继承,但支持接口继承。
2.类派生自用户选中的另一个类,还可以派生自任意多个接口。
三.继承示例:
1.声明一个类派生自另一个类
代码:
calss MyClass:MyBaseClass{ //MyClass类派生MyBaseClass
//这里写需要实现的代码
}
2.1.结构派生自多个接口,接口之间用逗号隔开
实现代码:
Public sturct MyClass:IInterface1,IInterface2{
//etc
}
2.2类派生一个基类和多个接口
实现代码:
calss MyClass:MyBaseClass,IInterface1,IInterface2{
//etc
}
四.虚方法:把一个基类函数声明为virtual,让任何派生类重写该函数
实现代码:
class MyBaseClass{ //基类
public virtual string VirtualMethod(){ //声明一个虚方法
return "这是一个虚方法"
}
}
calss MyClass:MyBaseClass{ //MyClass类派生MyBaseClass基类
public override string VirtualMethod(){ //重写基类的虚方法 ,重写基类的方法要用override
return "我重写了MyBaseClass基类中的VirtualMethod()方法";
}
}