之前可能已经提出这个问题,但我找不到满意的答案:
我有一个名为IRepository
的界面,它定义了许多通用方法,例如Find<T>();
我有一个名为RepositoryBase
的抽象类,它实现了这个接口,提供了这些方法的通用版本。
然后我有一系列继承自此对象的对象,例如PersonRepository
。
我的问题是:
PersonRepository是IRepository类型的对象吗?
或换句话说这个代码会起作用吗?
IRepository repo = new PersonRepository();
答案 0 :(得分:0)
因为PersonRepository
继承自RepositoryBase
,这是一个实现IRepository
的抽象类,所以PersonRepository
的实例也实现了IRepository
答案 1 :(得分:0)
不合格是的。继承是一个单路径链。子类可以覆盖父类的功能,或者使用它们自己的功能隐藏它,但是不允许它们“实现”它。