过去我问了一个关于三个A B C继承的问题
我的新问题是,如果A类是接口,是否可以这样做?
interface A {
...
}
class B: A {
...
}
class C: A {
...
}
答案 0 :(得分:1)
这里没有区别。您仍然无法将C
对象分配到List<B>
。
var listA = new List<A>();
var listB = new List<B>();
foreach(A item in listA)
listB.add(item);
如果C
中有listA
个实例,则会抛出异常。
但另一个问题解决方案仍然有效:
var listA = new List<A>();
var listB = new List<B>();
foreach(B item in listA.OfType<B>())
listB.add(item);
答案 1 :(得分:0)
当你从Interface
继承时,它不是被称为继承,而是它的相当被称为的实现。界面的作用是提醒您必须在代码中实现哪些方法。
您可以在创建类时添加任意数量的接口,但您只能从1个类继承。