如何实现继承接口的函数?我有以下接口:
interface IAnimal
interface IDog : IAnimal
interface ICat : IAnimal
interface IShelter
class DogShelter : IShelter
class CatShelter : IShelter
现在我希望IShelter有一个函数:
Store(IAnimal animal)
但我希望狗庇护所能这样实施:
Store(IDog animal)
像这样的猫头鹰:
Store(ICat animal).
有没有办法做到这一点?除了有DogShelter实现存储(IAnmial动物)和检查是否(动物是IDog)?
我应该用商店(动物),然后用(动物)投它吗?
(我想使用关于IDog和ICat的接口继承。类继承在实际代码中是不可能的)(此时计算时间有点重要。使用Store(IDog animal)而不是检查“if(animal is IDog)”是否更便宜?还是只是为了方便?)
以下是解决方案。您应该使用泛型约束。
interface IShelter<T> where T : IAnimal
{
void Store(T animal);
}
class DogShelter : IShelter<IDog>
{
public void Store(IDog animal)
{
throw new NotImplementedException();
}
}
class CatShelter : IShelter<ICat>
{
public void Store(ICat animal)
{
throw new NotImplementedException();
}
}
我有两个接口: 和: 从注释中可以看到,不编译。为什么不呢?我该怎么修复它呢?扩展了,所以它应该可以工作,对吗?
为了在 .NET Core 中使用依赖关系注入,我们构建了一堆存储库接口,供控制器用于数据库交互。 我们有一个< code>EntityBase类,其中包含一些方法,我们的通用存储库接口使用这个基类,例如:< code>IRepository 我想添加一个更具体的 类,该类扩展了 ,以表示我们有一些要按标记筛选的实体。我希望 有一个抽象属性,我可以在控制器中使用该属性,以便我可以抽象出来并重用过滤
在定义一个类时往往会使其继承某个父类或者实现某个接口,在扩展中实现这个功能非常方便。下面我先给出PHP语言中的代码。 <?php interface i_myinterface { public function hello(); } class parent_class implements i_myinterface { public function hello()
本文向大家介绍PHP接口继承及接口多继承原理与实现方法详解,包括了PHP接口继承及接口多继承原理与实现方法详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP接口继承及接口多继承原理与实现方法。分享给大家供大家参考,具体如下: 在PHP的接口中,接口可以继承接口。虽然PHP类只能继承一个父类(单继承),但是接口和类不同,接口可以实现多继承,可以继承一个或者多个接口。当然接口的继承也是
条款36: 区分接口继承和实现继承 (公有)继承的概念看起来很简单,进一步分析,会发现它由两个可分的部分组成:函数接口的继承和函数实现的继承。这两种继承类型的区别和本书简介中所讨论的函数声明和函数定义间的区别是完全一致的。 作为类的设计者,有时希望派生类只继承成员函数的接口(声明);有时希望派生类同时继承函数的接口和实现,但允许派生类改写实现;有时则希望同时继承接口和实现,并且不允许派生类改写任何
下面的范例(见图10.2)要重新考察上一章中的 Point、cirele、Cylinder 类的层次结构,只不过这里类的层次结构的顶层是抽象基类Shape。类Shape中有一个纯虚函数printShapeName和print,所以它是一个抽象基类。类 shape 中还包含其他两个虚函数 area 和 volume,它们都有默认的实现(返回0值)。类Point从类shape中继承了这两个函数的实现,