为什么列表类实现IList接口? - c#

我的问题可能会有点愚蠢,但是我真的想知道为什么以这样的方式设计集合层次结构:它包含接口和类,而可能只是类,或者在顶层和其余类中只有一个接口。

有人可以解释一下原因吗?

参考方案

每个类只能从一个类派生,而可以从多个接口派生。
为什么我们需要多个接口?
通常,有两个原因导致我们对一个类拥有多个接口:1.一类可以具有不同类型的行为; 2.开放-封闭原则。
接口的简短定义是:接口是一个实体,它确定派生类必须如何行为,并且由于行为的类型不同,因此每个类可能需要不同的接口。
而且,根据SOLID的第二个原理,它是“开闭原理”的缩写,这意味着即使您要向特定的类添加新行为(例如CanBark),实体也必须为扩展而打开,但为修改而关闭并且作为班级的父级,您已经有一个与之相关的接口(IDogActions),建议不要修改IDogActions接口,因为可能还有许多其他类在实现此接口,并且不需要新的操作,您可以创建一个新接口(例如IDogAuditoryActions)。

C#排序与Java Collections.Sort给出不同的结果 - java

            C#代码:public class Test { public static void Main() { List<string> list = new List<string> { "[email protected]", "[email protected]"…

我应该一直使用Java接口编程,尤其是对于集合 - java

正如建议的那样,几乎所有地方都应该一直使用接口,尤其是在处理集合时。// Using interfaces List<Integer> list = new LinkedList<Integer>(); ((LinkedList) list).offerFirst(num); //Using concrete class Linked…

LeetCode题解计算机为什么是基于二进制的?

可以是三进制么?二进制有什么好处?题解:为什么叫电子计算机?算盘应该没有二进制

LeetCode题解统计城市的所有灯泡

这个是我刚毕业的时候,一个真实的面试题,这是一个开放题。题目描述:想办法,将一个城市的所有灯泡数量统计出来。题解:费米估算法1、如果某个城市常驻人口有1000万2、假设每5人居住在一套房里,每套房有灯泡5只,那么住宅灯泡共有1000万只3、假设公众场所每10人共享一只灯泡,那么共有100万只4、主要的这两者相加就得出了1100万只当然实际上这是估算的,具体应…

LeetCode题解黑白圆盘

一个圆盘被涂上了黑白二色,两种颜色各占一个半圆。圆盘以一个未知的速度、按一个未知的方向旋转。你有一种特殊的相机可以让你即时观察到圆上的一个点的颜色。你需要多少个相机才能确定圆盘旋转的方向?题解:可以用一个相机即可