基于C#的接口基础教程之七(1)

基于C#的接口基础教程之七(1)


作者: 黎宇/Yesky  &;nbsp来自:网络


                第七节、覆盖虚接口
 
    有时候我们需要表达一种抽象的东西,它是一些东西的概括,但我们又不能真正的看到它成为一个实体在我们眼前出现,为此面向对象的编程语言便有了抽象类的概念。C#作为一个面向对象的语言,必然也会引入抽象类这一概念。接口和抽象类使您可以创建组件交互的定义。通过接口,可以指定组件必须实现的方法,但不实际指定如何实现方法。抽象类使您可以创建行为的定义,同时提供用于继承类的一些公共实现。对于在组件中实现多态行为,接口和抽象类都是很有用的工具。
 
    一个抽象类必须为类的基本类列表中列出的接口的所有成员提供实现程序。但是,一个抽象类被允许把接口方法映射到抽象方法中。例如
 
 
  interface IMethods {
   void F();
   void G();
  }
  abstract class C: IMethods
  {
   public abstract void F();
   public abstract void G();
  }
 
    这里, IMethods 的实现函数把F和G映射到抽象方法中,它们必须在从C派生的非抽象类中被覆盖。
  注意显式接口成员实现函数不能是抽象的,但是显式接口成员实现函数当然可以调用抽象方法。例如
 
 
  interface IMethods
  {
   void F();
   void G();
  }
  abstract class C: IMethods
  {
   void IMethods.F() { FF(); }
   void IMethods.G() { GG(); }
   protected abstract void FF();
   protected abstract void GG();
  }
 
    这里,从C派生的非抽象类要覆盖FF 和 GG, 因此提供了IMethods的实际实现程序。
 
 
    (2005-7-03:04:31)
 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 警告:持续变种木马正在发起农历新年攻势!
 您可能对 [C#] 的这些文章也感兴趣:
Visual C#2005中使用正则表达式
C#低级Windows API钩子拦截键盘输入
用C#实现基于TCP协议的网络通讯
防止winform假死新技术,visual studio 2005自带的控件
理解C# 3.0新特性之Extension方法浅议
关于C#中委托的学习
Visual C# .Net环境中编程实现浮动工具栏
C#中提供的VB不支持的新特性
C#2.0之partial
c#下的javascript写成有用的类
C# 网络资源
c#中动态装载dll