抽象类/实类继承接口后,是否必须全部实现接口的方法?(求高手解答) - 青草随缘

时间:2024-03-10 10:42:08

抽象类/实类继承接口后,是否必须全部实现接口的方法?(求高手解答)

以下是IList接口代码

// from module \'c:\windows\microsoft.net\framework\v1.1.4322\mscorlib.dll\'
public interface System.Collections.IList :System.Collections.ICollection,
System.Collections.IEnumerable
{

// Properties
bool IsFixedSize { get; }
bool IsReadOnly { get; }
object this[ int index ] { get; set; }

// Methods
int Add(object value);
void Clear();
bool Contains(object value);
int IndexOf(object value);
void Insert(int index, object value);
void Remove(object value);
void RemoveAt(int index);
}
// end of System.Collections.IList

以下是CollectionBase抽象类接口代码

// from module \'c:\windows\microsoft.net\framework\v1.1.4322\mscorlib.dll\'
public abstract class System.Collections.CollectionBase :
object,
System.Collections.IList,
System.Collections.ICollection,
System.Collections.IEnumerable
{

// Fields

// Constructors

// Properties
public int Count { virtual get; }

// Methods
public virtual void Clear();
public virtual bool Equals(object obj);
public virtual System.Collections.IEnumerator GetEnumerator();
public virtual int GetHashCode();
public Type GetType();
public virtual void RemoveAt(int index);
public virtual string ToString();
}
// end of System.Collections.CollectionBase

抽象类CollectionBase继承了接口IList,但并没有实现其全部方法。    int Add(object value);bool Contains(object value);int IndexOf(object value);void Insert(int index, object value);void Remove(object value);都没有被实现。

那么就说说抽象类继承接口后,可以不全部实现接口的方法。

但是接下来还是有疑问:

那我用WebFavoriteCollection类继承 CollectionBase ,但也没有全部实现以上的方法,我的WebFavoriteCollection类还是可以用的。但是如果我自己建立一个接口,实体类继承了之后就必须全部实现接口的成员,否则程序无法继续,那么我用抽象类继承接口,不全部实现接口成员,再用实体类继承抽象类,那么实体类就不用全部实现接口的成员了,是这么理解的吗?

我自己写测试代码试一下。