----------------------
Windows Phone 7手机开发、
.Net培训、期待与您交流! ----------------------
详细请查看: http://net.itheima.com/
什么继承?
谈到继承就可以回顾上一篇结构的一些概念:结构不支持继承,但有自己的继承链 ;结构:System.ValueType:System.Object
在面向对象的编程中,继承分为两种。
实现继承:表示一个类派生自另一个基类。
接口继承:表示一个类实现了某一个接口。
多重继承:
在C#中类和类之间不能进行多重继承,原因是这种做法 不符合c#简约设计模式的初衷。且代码冗杂,难以理解。但是可以通过继承链的形式,间接的
实现类与类之间的多重继承。
类和接口之间可以进行多重继承。结构也支持接口继承。
实现继承:
一个类派生自另一个基类就叫实现继承:
public class MyDerivedClass:MyBaseClass
{
}
接口继承:
public class MyDerivedClass:MyBaseClass,Interface1,Interface2
{
//.....实现。。
}
对于结构也可以实现接口继承:
public struct MyStruct:Interface1,Interface2
{
//....实现。。
}
虚方法:
把基类中的一个方法申明为virtual,就可以再派生类重写这个方法。
public class MyBaseClass
{
public virtual void VirtualMethod()
{
//.....
}
}
在派生类中可以通过override关键字对此方法进行重写:
public class MyDerivedClass:MyBase
{
public override void VirtualMethod()
{
//..定义新的方法逻辑。
}
}
隐藏方法:
如果派生类和基类中有同名的方法,可以在派生类中 使用new关键字来隐藏基类中的方法。(没加new关键字,编译器也会默认隐藏,只不过 不加的话会给出一个警告。)
调用函数的基类版本。
public class MyDerivedClass:MyBaseClass
{
public void BaseMothod()
{
//base关键字调用函数的基类版本
base.Virtual();
}
}
抽象函数和抽象类;
C#允许把函数定义为抽象的(abstract).抽象函数不能被实例化,抽象函数不能有具体实现,必须在派生类中重写。
密封方法和密封类(sealed)
public sealed class inalClass//表示此类不能被继承。
sealed void sealed method();//表示此方法不能被重写。
---------------------- Windows Phone 7手机开发、 .Net培训、期待与您交流! ----------------------
详细请查看: http://net.itheima.com/