鍍金池/ 問(wèn)答/Python  C  C#  HTML/ .NET中在一個(gè)繼承體系上定義多個(gè)相同的接口是基于什么樣的理由?

.NET中在一個(gè)繼承體系上定義多個(gè)相同的接口是基于什么樣的理由?

.NET官方文檔中非泛型IList接口的定義是:

public interface IList : ICollection, IEnumerable

而ICollection接口的定義本身也會(huì)繼承自IEnumerable,如下圖:

public interface ICollection : IEnumerable

既然IList 繼承自ICollection ,而ICollection 又繼承自IEnumerable,

那么為何IList的定義中還要顯示聲明繼承自IEnumerable呢?如果IList的定義去掉顯示的IEnumerable繼承, 像下面這樣會(huì)有什么潛在的問(wèn)題?

public interface IList : ICollection

類似這樣重復(fù)繼承相同接口的現(xiàn)象在.NET Framework BCL中有很多,為什么要這樣設(shè)計(jì)呢?是基于什么樣的思想呢?

回答
編輯回答
祈歡
2018年5月12日 17:30