有两个接口:分别为ISomeA、ISomeB
public interface ISomeA
{
object Find(object o);
object List();
}
public interface ISomeB
{
object Find(object o);
object List();
bool IsMatch(object o);
}
然后有两个类分别实现接口继承:
public class SomeA : ISomeA
{
object[] _collectionList;
public SomeA(object[] collectionList)
{
//构造函数
}
object Find(object o)
{
//实现Find方法
}
object List()
{
//实现List方法
}
public bool IsMatch(object o)
{
//实现IsMatch方法,类SomeA的公有方法。不是实现接口ISomeA的声明。
}
}
public class SomeB : ISomeB
{
object[] _collectionList;
public SomeB(object[] collectionList)
{
//构造函数
}
object Find(object o)
{
//实现Find方法
}
object List()
{
//实现List方法
}
bool IsMatch(object o)
{
//实现IsMatch方法,实现接口ISomeB的继承
}
}
最后在实例化两个对象:
//objList某个对象数组
SomeA objA = new SomeA(objList);
SomeB objB = new SomeB(objList);
那么
1:对象的公有方法是否是他的接口。
2:对象objA与objB是否有相同的接口。
3:对象objA与objB是否是相同的类型。
我的答案:
1:对象的公有方法应该是他的接口。因为接口是他所能响应的请求的集合(对象操作所定义的所有型构/签名的集合)。
2:对象objA与objB实质上具有相同的接口,尽管他们继承的接口不一样。
3:对象的类型完全取决与他的接口,根据2可知他们具有相同的类型。(我对2、3比较疑惑,感觉非常矛盾,他们应该明显的不是相同的类型!)
谁能清楚的告诉我这几个问题的答案!欢迎大家指教!