当前位置: 首页 > 面试题库 >

接口的目的继续

刘和昶
2023-03-14
问题内容

好的,所以我认为接口是一种强制对象实现一定数量功能而无需使用继承的方法。有点像合同。我半明白他们的意思。

但是,如果您在界面中拥有的全部是:

 public interface animal{
  void eat(object food);
}

而且它没有这样的实现,那么使用接口的人每次都必须从头开始编写它。

如果要创建许多都实现此类功能的类,并且实现仅稍有不同,则将需要大量的工作。

感谢所有帮助我解决这个问题的人,因为我知道这非常重要。


问题答案:

接口是在Java中创建多重继承的唯一方法。

假设您创建了一个班级Animal。包括人类在内的所有动物都将其延伸。这些动物中的每一个都继承了吃,呼吸等常用方法。

但是,现在让我们说您有一MathProblem堂课。并且您希望具有某些类,可以通过将问题传递给solve(MathProblem problem)方法来解决该问题。而且您知道Human,但也Computer可以解决数学问题。因此,他们俩都必须能够解决该问题。您可能可以使计算机扩展MathSolver具有该方法的某些类,但是Human已经扩展了Animal,并且不能扩展其他任何东西。所以,更好的办法是让MathSolver的接口,并同时拥有HumanComputer以及其他任何类,需要解决的问题,实现一个。

还要注意,a Human和a
Computer可能以完全不同的方式解决问题,因为它们的对象不同。这就是最适合的接口。定义跨越多个继承层次结构的某些功能,这些功能可以有非常不同的实现,但是可以全部传递给接受其中任何一个的方法。想想Comparable界面;它不是某类对象所具有的东西,可以比较各种事物,并且通常以非常不同的方式进行比较。但是,你可以随时调用排序上ListComparable对象,因为你知道他们有一定的顺序,不管他们是NumbersAnimalsComputers或其他任何东西(只要它们实现Comparable并定义它们的顺序)。



 类似资料:
  • 我有两个接口: 和: 从注释中可以看到,不编译。为什么不呢?我该怎么修复它呢?扩展了,所以它应该可以工作,对吗?

  • 问题内容: 我认为多重继承在Java中总是非法的,但是这段代码可以编译: 是否有一个空接口,例如被认为是不好的做法?有没有一种方法可以避免空接口(使用泛型或其他方式)实现相似的目的? 注意:我不是在问如何通过接口模拟多重继承。我意识到我可以执行以下操作: 由于各种原因,我需要同时具有这两种方法的接口。 问题答案: 实现的 多重继承是不允许的。组件可以继承多个接口。 继承多个接口没有问题,因为您只是

  • 在定义一个类时往往会使其继承某个父类或者实现某个接口,在扩展中实现这个功能非常方便。下面我先给出PHP语言中的代码。 <?php interface i_myinterface { public function hello(); } class parent_class implements i_myinterface { public function hello()

  • 我有一个DAO接口,其中有多个实现,我希望其中一个是Room实现(Kotlin):

  • 为了在 .NET Core 中使用依赖关系注入,我们构建了一堆存储库接口,供控制器用于数据库交互。 我们有一个< code>EntityBase类,其中包含一些方法,我们的通用存储库接口使用这个基类,例如:< code>IRepository 我想添加一个更具体的 类,该类扩展了 ,以表示我们有一些要按标记筛选的实体。我希望 有一个抽象属性,我可以在控制器中使用该属性,以便我可以抽象出来并重用过滤

  • 如何实现继承接口的函数?我有以下接口: 现在我希望IShelter有一个函数: 但我希望狗庇护所能这样实施: 像这样的猫头鹰: 有没有办法做到这一点?除了有DogShelter实现存储(IAnmial动物)和检查是否(动物是IDog)? 我应该用商店(动物),然后用(动物)投它吗? (我想使用关于IDog和ICat的接口继承。类继承在实际代码中是不可能的)(此时计算时间有点重要。使用Store(I