首页 > Windows开发 > 详细

【转载】在C#里怎么重写已实现的接口

时间:2014-12-31 22:40:19      阅读:389      评论:0      收藏:0      [点我收藏+]

转载自http://blog.csdn.net/mikechenhua/article/details/42190921

本文通过虚拟函数来实现接口在继承类里的重写。实现语言为C#。


通常如果我们定义了一个接口如下:


interface IMyInterface

{

    void Foo(int i);

}


然后我们在类Base里实现了此接口,如下:


class MyClassBase

{

    protected void Foo(int i){  MessageBox.Show("The value of i is " + i.ToString()); }

    private void SomeOtherFun(){}

}


现在我们想在继承类里面重写Foo,也就是重新实现这个接口,但是C#不支持这样的接口重写,我们可以通过以下的方式来达到目标:


1. 更改MyClassBase如下:

class MyClassBase

{

    public void Foo(int i){ FooImple(i); }

    protected virtual void FooImpl(int i){ MessageBox.Show("The value of i is " + i.ToString()); }   

    private void SomeOtherFun(){}

}

从而继承类可以重写接口如下:


class MyChildClass : MyClassBase

{

    public virtual void FooImpl(int i){ MessageBox.Show("The value of i^2 is " + (i * i).ToString()); }   

}

 

转载自http://blog.csdn.net/mikechenhua/article/details/42190921

【转载】在C#里怎么重写已实现的接口

原文:http://www.cnblogs.com/ProgrammingDonkey/p/4196692.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!