|  | 网站首页 | .Net研究 | 
您现在的位置: 程序员之路 >> .Net研究 >> 相关资讯 >> 学习体会 >> 文章正文
赞助商链接
频 道 导 航
.Net研究频道栏目导航
相 关 文 章
Effective C# Item 20: Distinguish Between Implemen           
Effective C# Item 20: Distinguish Between Implemen
作者:aiyagaze 文章来源:不详 更新时间:2007-5-10 11:53:02

Effective C# Item 20: Distinguish Between Implementing Interfaces and Overriding Virtual Functions

Effective C# Item 20: Distinguish Between Implementing Interfaces and Overriding Virtual Functions

      乍看之下,实现接口和重写虚方法是相似的,它们都为一个声明好的成员提供了定义。这种看法是错误的。实现接口和重写虚方法是有很大区别的。在默认情况下,在接口中声明的成员不是虚拟的。派生类不能够重写基类中实现的接口。

      有一种方法可以让派生类修改基类中接口的实现。要实现这一点,我们需要为派生类创建一个钩子(hook)。

      下面我们举一个例子,一个简单的接口和一个类对接口的实现如下:

interface IMsg
{
      
void Message();
}

public class MyClass : IMsg
{
      
public void Message()
      
{
            Console.WriteLine(
"MyClass");
      }

}

      Message()方法是MyClass类的公共接口中的一部分。我们也可以通过IMsg接口来访问MyClass类型中的成员。现在我门来让派生类中的情况稍微复杂一些:

public class MyDerivedClass : MyClass
{
      
public new void Message()
      
{
            Console.WriteLine(
"MyDerivedClass");
      }

[1] [2] [3] 下一页

文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • .Net研究栏目导航
    网站频道导航