c#一个简单的实例告诉你,多继承还可以这么来

我想多继承,要怎么搞???我想你一定会说“接口”,那么你有没有遇到这样的问题,你需要在一个类中继承另外2个类的所有方法,你要怎么做呢???难道要Coyp实现代码?No,往下看。。。

定义一个空接口比如

public interface I飞
{ }

然后将你需要继承的一个类修改为静态的,然后修改方法。

假如你的方法原来是这样的

  public  void 飞()
{
Console.WriteLine("开始飞了"); }

那么就修改为这样

public static void 飞<T>(this T 飞实例) where T : I飞
{
Console.WriteLine("开始飞了"); }

然后你就可以继承了

  public class 苍蝇 : I飞
{
public virtual void 自我介绍()
{
Console.WriteLine("我是苍蝇");
} public void 飞一个看看()
{
this.飞();
}
}

这样你就不需要为继承接口Copy相同的代码了

全部代码:

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace testjiekou
{
class Program
{
static void Main(string[] args)
{
超级老虎 t = new 超级老虎();
t.自我介绍();
t.我会飞()
Console.ReadKey();
}
} public interface I飞
{ }
public static class 飞接口的扩展
{
public static void 飞<T>(this T 飞实例) where T : I飞
{
Console.WriteLine("开始飞了");
}
} public class 老虎
{
public virtual void 自我介绍()
{
Console.WriteLine("我是老虎");
}
} public class 苍蝇 : I飞
{
public virtual void 自我介绍()
{
Console.WriteLine("我是苍蝇");
} public void 飞一个看看()
{
this.飞();
}
} public class 超级老虎 : 老虎, I飞
{
public override void 自我介绍()
{
Console.WriteLine("我是超级老虎");
}
public void 我会飞()
{
this.飞();
}
}
}

怎么样,是不是有所感觉了呢。。。是不是发现什么了呢。。。

上一篇:mysql导入数据库


下一篇:【转】外部应用和drools-wb6.1集成解决方案