日期:2014-05-18  浏览次数:20652 次

Hashtable 为什么继承了这么多的接口?
IDictionary,   ICollection,   IEnumerable,   ISerializable,   IDeserializationCallback,   ICloneable

以上都是Hashtable继承的接口,

查MSDN,ICollection接口继承了IEnumerable接口,
而IDictionary接口同时继承了ICollection,   IEnumerable这二个接口,
所以得出IDictionary拥有ICollection,   IEnumerable这二个接口的所有成员
那为什么Hashtable还要继承ICollection,   IEnumerable这二个接口呢?
请高手答!


------解决方案--------------------
接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个 有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。 然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到 接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口