// This is not allowedclass A { voID A() {} }class B { voID B() {} }class C : A,B {}// This is allowedinterface IA { voID A(); }interface IB { voID B(); }class A : IA,IB{ public voID A() {} public voID B() {}}
类中存在钻石问题,因为有可能发生冲突的实现(如果A和B具有相同的方法,并且C都同时扩展,则需要哪种方法?).另一方面,接口只需要一个实现类型来拥有他们声明的方法.
如果在两个接口中定义完全相同的方法,并且一个类实现了两个接口,这并不重要.所有的类都需要做的是为方法提供一个实现,以便可以编写代码来调用该方法.意思是这样的:
interface IA { voID Method(int x); }interface IB { voID Method(int x); }class A : IA,IB{ public voID Method(int x) { Console.Writeline(x); }}
请注意,类可能仍然继承自其他类,加上任何数量的接口:
class A : B,IA,IB {}总结
以上是内存溢出为你收集整理的如何使用接口克服C#中多重继承的问题?全部内容,希望文章能够帮你解决如何使用接口克服C#中多重继承的问题?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)