【问题标题】:Why don't all Java classes have interfaces?为什么不是所有的 Java 类都有接口?
【发布时间】:2010-02-07 00:00:20
【问题描述】:

我收到了这个问题作为家庭作业,但我不知道如何回答。你能帮帮我吗?

【问题讨论】:

  • 请发布更多上下文。如果这是你的教授给你的全部,那么这是一个非常糟糕的问题。
  • 不,这不是你的问题。
  • 这正是我得到的问题,没有上下文,我不知道该说什么。上一个问题是“说明 Java 接口的重要性”。
  • 这是个好问题。多年来我一直想问高斯林这个问题!
  • 实际上所有的 Java 类都有接口。他们只是不一定有接口。

标签: java class interface


【解决方案1】:

对于任何类型的“为什么不...”问题,最好考虑一下“如果...会发生什么”。在这种情况下:如果每个 Java 类都需要有一个接口会发生什么?它将如何改变现有的 API?对于创建新课程的人来说,它将如何改变?您在回答这些其他问题时发现的任何问题都可能是您原来问题的答案。

【讨论】:

  • 感谢您比其他回复更具建设性。这更有帮助。
【解决方案2】:

也许这个问题针对的是类或模块接口的一般概念Java接口的语言结构之间的区别(在某种意义上所有类都有接口,但不实现接口)。

【讨论】:

    【解决方案3】:

    我们不是来帮你做作业的。但是,如果您已经回答了前面的问题 - 关于接口的用途 - 您可能会很容易回答这个问题。

    【讨论】:

      【解决方案4】:

      回答你的老师,这是因为每节课都有界面是没有意义的。 如果他问你“为什么?”,回答他:想象一下,如果地球上的每个人都必须具备开发软件的技能、攀登山峰的力量、滑雪的技术、在政治上拥有扎实的见解,那会是怎样?讨论并能够像毕加索一样画画......啊...... :) 更不用说说地球上的每一种语言了。

      我敢打赌,会有人与我争论地球上每个拥有所有这些能力的人有什么问题,但这会使我们的答案偏离主题。所以,最好不要争论。至少不在这里:)

      【讨论】:

      • “所以,最好不要争论”。我不同意:-)
      【解决方案5】:

      这没有任何意义。 StringDate 的接口是什么?

      【讨论】:

      • 对于 String、charAt()、indexOf() 等——一切都是为了让我自己(比如)ASCII-only 字符串——String 是最终的,所以你在什么方面真的残废了你可以用它。对于 Date,好吧,这些天该类的 95% 已被正式弃用,这对我来说意味着更多的实现灵活性可能是一件好事。 :-)
      【解决方案6】:

      理解这个问题的另一种方法是查看使用接口时的实例/情况。并且,问问自己实现一个接口会有什么影响?以“创建线程”为例。您可以通过扩展 Thread 类或实现 Runnable 接口来创建它。在这种情况下,接口解决了多重继承的问题。实现接口“总是”会解决/创建什么问题?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-01-04
        • 1970-01-01
        • 2011-05-22
        • 2013-02-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多