c#中的对象

时间:2013-07-09 09:05:29

标签: c# class object

过去我问了一个关于三个A B C继承的问题

查看Clases and Objects in c#

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

interface A {
...
}

class B: A {
...
}

class C: A {
...
}

2 个答案:

答案 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个类继承。