其实只是”看上去“像多重继承而已。因为扩展方法其实是静态方法,你一定在项目中写过这样的静态方法:
public static void SomeMethod(ISomeInterface interface)
{//
}
在调用的时候还要写上全静态方法所在的类,即这样调用SomeClass.SomeMethod(interface)
而扩展方法把这一切简化为:SomeInterface.SomeMethod(),看上去似乎为所有实现了ISomeInterface接口的类提供了SomeMethod的默认实现,但其实这只是个静态方法,是编译器的语法糖。也就是说扩展方法是C#的特性,而不是IL的,更不是CLR的。
因此,只能说扩展方法在某种程度上提供了多重继承的一种实现方式,但不能说着违背了不能多重继承的原则。