【问题标题】:Java abstract class and interface methods implementationJava抽象类和接口方法实现
【发布时间】:2011-11-20 11:57:08
【问题描述】:

如果你有一个带有 3 个方法(x()、y() 和 z())的接口(Position),并且还有一个抽象类,我们可以将其命名为 Shape。

Shape 实现了 Position 并且只给 x() 和 y() 提供代码。编译器是否隐含猜测 z() 是一个抽象方法?

【问题讨论】:

    标签: java class interface implementation abstract


    【解决方案1】:

    是的。只要 Shape 是抽象的,就不需要实现 Position 的所有方法。这是任何具体类所必需的。

    【讨论】:

      【解决方案2】:

      java编译器在接口方法前添加public和abstract关键字,在数据成员前添加public、static和final关键字。

      【讨论】:

        【解决方案3】:

        是的,因为你不能实例化抽象类(Shape),编译器知道 z() 将由其他一些子类(Shape)实现。

        【讨论】:

          【解决方案4】:

          抽象类不需要实现所有方法。这是他们具体类/实现的责任。在这种情况下,是的z() 将被视为Shape 的抽象方法。

          【讨论】:

            【解决方案5】:

            每个非抽象类都必须为其任何抽象超类或接口中定义的所有方法提供实现。编译器足够聪明,可以检查整个类的层次结构,以确定您忘记实现您的类声称为其提供实现的东西。

            【讨论】:

              猜你喜欢
              • 2014-02-05
              • 2012-01-20
              • 2020-10-20
              • 2014-08-18
              • 2020-02-04
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-05-08
              相关资源
              最近更新 更多