C# 具有接口的多重继承
我在看一段视频,这里有一张照片C# 具有接口的多重继承,c#,design-patterns,interface,multiple-inheritance,C#,Design Patterns,Interface,Multiple Inheritance,我在看一段视频,这里有一张照片 我的问题是:如果不使用将A和B对象保存在内部并调用它们的接口,就不能创建AB类吗?当我说界面可以忽略时,我扔掉了什么信息 是的,AB类可以包含A和B对象作为类成员 图像中的示例在“真实”示例中有点难以描绘 我通常遵循规则: 如果是[类型],则继承。 如果有[type],则为成员 示例。 猫是一种动物,所以猫是从动物那里继承的。 猫有一条尾巴,所以尾巴是猫的一员 由于C#不允许从多个类继承,因此必须使用接口 猫是一种动物,但它也是一个骗子,这是两种不同的类型。 因
我的问题是:如果不使用将A和B对象保存在内部并调用它们的接口,就不能创建AB类吗?当我说界面可以忽略时,我扔掉了什么信息 是的,
AB
类可以包含A
和B
对象作为类成员
图像中的示例在“真实”示例中有点难以描绘
我通常遵循规则:
如果是[类型],则继承。
如果有[type],则为成员
示例。
猫是一种动物,所以猫是从动物那里继承的。
猫有一条尾巴,所以尾巴是猫的一员
由于C#不允许从多个类继承,因此必须使用接口
猫是一种动物,但它也是一个骗子,这是两种不同的类型。
因此,它实现了IAnimal
和ITrickster
接口 通过实施IA
和IB
类AB
可用于任何预期IA
或IB
的地方:
void doSomethingWithIA(IA item)
{
item.AMethod();
}
...
AB ab = new AB();
doSomethingWithIA(ab);
如果AB
的方法名与IA
和IB
doSomethingWithIA()
的方法名相同,则不会接受它作为参数。我想你的问题是,为什么我们甚至需要一个接口
我能想到的原因之一是减少了类之间的耦合。
在测试驱动的开发中,接口可以帮助您用模拟对象替换
查看这些链接以了解更多信息。
当人们第一次了解界面时,这是一个常见的问题。一个接口就是一个契约,如果你只有一个使用契约的对象,那么很难看到它的价值,但是当你有数百个时,它就容易多了。@paqogomez你知道有什么好的资源可以说明这一点吗?还是像上面所看到的那样缩小了很多?任何一本好的c#书都会带你浏览接口并讨论它们的优点。我的经验是使用它们,直到你理解为什么它们能让你更好地编写代码。@paqogomez谢谢:)我会看看教科书,看看它是否有助于我看到其中的价值。谢谢你,也许我不完全了解这个世界,我有很多关系。关系中最重要的是什么?“猫是动物”->任何动物的方法或属性都适用于猫。“猫有尾巴”->尾巴的方法和属性适用于猫的一部分,但不是所有的猫。第二个链接帮助很大。多谢各位