碰撞c#中的对象
本文关键字:对象 碰撞 | 更新日期: 2023-09-27 18:21:48
过去我问过一个关于a B C 三个类的继承的问题
看看c#中的冲突和对象
我的新问题是,如果类A是一个接口,是否可以这样做?
interface A {
...
}
class B: A {
...
}
class C: A {
...
}
这里没有区别。仍然无法将C
对象分配给List<B>
。
var listA = new List<A>();
var listB = new List<B>();
foreach(A item in listA)
listB.add(item);
如果listA
中有任何C
实例,将抛出异常。
但另一个问题的解决方案仍然有效:
var listA = new List<A>();
var listB = new List<B>();
foreach(B item in listA.OfType<B>())
listB.add(item);
从Interface
继承时,它不称为继承,而称为实现。接口所做的是提醒您必须在代码中实现哪些方法。
在创建一个类时,可以添加尽可能多的接口,但只能从一个类继承。