黑马程序员_学习日记4_C#基础归纳总结之继承

来源:互联网 发布:java集合类实现类 编辑:程序博客网 时间:2024/06/09 08:07
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------

什么继承?

       谈到继承就可以回顾上一篇结构的一些概念:结构不支持继承,但有自己的继承链  ;结构: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/
原创粉丝点击