-3

以前问过一个关于ABC三个类的继承的问题

看看C# 中的类和对象

我的新问题是,如果 A 类是接口,是否可以这样做?

interface A {
...
}

class B: A {
...
}

class C: A {
...
}
4

2 回答 2

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);
于 2013-07-09T09:11:28.450 回答
0

当您从 an 继承时Interface,它不称为继承,而是称为实现。接口的作用是提醒你在代码中必须实现哪些方法。

创建类时可以添加任意多个接口,但仅限于从 1 个类继承。

于 2013-07-09T09:14:46.267 回答