子对象是否实现父类接口

本文关键字:父类 接口 实现 是否 对象 | 更新日期: 2023-09-27 18:13:03

这也许以前有人问过,但我找不到满意的答案:

我有一个名为 IRepository 的接口,它定义了很多通用方法,例如 Find<T>();

我有一个名为 RepositoryBase 的抽象类,它实现了此接口,提供这些方法的通用版本。

然后,我有一系列从该对象继承的对象,例如 PersonRepository .

我的问题是:

PersonRepository 是 IRepository 类型的对象吗?

或者换句话说,这段代码会起作用吗?

IRepository repo = new PersonRepository();

子对象是否实现父类接口

由于PersonRepository继承自RepositoryBase,这是一个实现IRepository的抽象类,所以PersonRepository的实例也实现了IRepository

不合格的是。继承是一个单路径链。子类可以覆盖父类的功能,或者用自己的功能隐藏它,但不允许它们"取消实现"它。