【问题标题】:Why use Java interfaces when you have to redefine methods to override them? [duplicate]当您必须重新定义方法来覆盖它们时,为什么要使用 Java 接口? [复制]
【发布时间】:2021-12-24 13:53:42
【问题描述】:

因此,您创建了一个接口并定义了一些方法。然后,如果您将接口实现到一个类,则必须覆盖该接口的所有方法。那么在这种情况下接口的目的是什么,因为你只是重复自己,重写方法?

【问题讨论】:

  • 您可能需要回顾 OOP 中的抽象概念。也将有助于阅读坚实的原则。
  • 还有SOLID principles,尤其是我和D。
  • 提示:您应该在此处发布问题之前进行认真的研究。互联网,还有这个社区真的有你。所以,下一次:尝试使用搜索引擎。可以肯定的是,您在这一点上能想到的任何基本问题在以前、这里和其他地方都被问过并回答了很多次。
  • 是的,有很多内容。答案会给你一些,而不是全部。例如,我喜欢在应用外观设计模式时使用界面(如果不太高级,您也可以查看它)。

标签: java oop


【解决方案1】:

实现多态概念。

【讨论】:

    【解决方案2】:

    Java 接口帮助您定义规则。

    例如,如果你有一个动物类,你会希望每个实现动物的类都有一个运动方法、肢体数量、它们发出声音的方式等。

    您不必事先知道这些方法是什么,但您确实想建立一套规则,使动物成为动物。

    【讨论】:

    • 但是为什么要这样做,如果您可以单独定义方法,因为无论如何您都会这样做,在每个类中覆盖它们时......
    • @Displayname 但那是纯粹的约定。当您拥有该接口动物并写下implements Animal 时,编译器 会告诉您是否错过了实现方法。说真的,如上所述:您的问题之前已经回答过很多次了。学习编程非常是关于学习如何找到现有的答案。不要指望其他人会向您解释这些已经解释过很多次的超级基本的东西。
    • @Displayname 添加到 GhostCat 所说的内容中,您希望编译器在您遗漏某些内容时通知您。每只动物都受到必须实施这些方法的契约的约束。无论如何你都会实现它们,但这将确保你不会忘记,并且签名不会改变,坚持一致的含义。
    • 谢谢@Kaizzen,现在更有意义了。我确实做了一些研究,但请原谅我这个问题有多基本。
    猜你喜欢
    • 1970-01-01
    • 2012-11-05
    • 1970-01-01
    • 2012-12-23
    • 1970-01-01
    • 1970-01-01
    • 2020-10-10
    • 1970-01-01
    • 2015-06-08
    相关资源
    最近更新 更多