【问题标题】:is not abstract and does not override abstract method [duplicate]不是抽象的,也不会覆盖抽象方法[重复]
【发布时间】:2021-09-01 18:58:51
【问题描述】:

我有作业,当我运行它时,它会给我这个消息 (不是抽象的,也不会覆盖抽象方法) 我使用一个界面,应该可以正常运行

interface Employee1212 {
  int retirementAge = 60;

  double generateSalary();
  double getBonus(double a, double b);
}

public class Manager implements Employee1212 {

  public double generateSalary() {
    return 10.0;
  }

  double getBonus() {
    return retirementAge;
  }
}

【问题讨论】:

    标签: java inheritance interface abstract-class abstraction


    【解决方案1】:

    你的方法getBonus没有正确实现。

    接口方法总是公开的,即使没有修饰符,所以你的实现也需要公开。此外,接口方法定义了两个参数,而您的实现没有。

    【讨论】:

      【解决方案2】:

      接口定义了double getBonus(double a, double b);,但你实现了double getBonus()。您需要签名匹配。使用@Override 注解有助于防止此类错误。

      public class Manager implements Employee1212 {
          @Override
          public double generateSalary() {
              return 10.0;
          }
      
          @Override
          public double getBonus(double a, double b) {
              return a * b; // retirementAge?
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-06-20
        • 2014-01-16
        • 1970-01-01
        • 1970-01-01
        • 2014-04-25
        • 1970-01-01
        相关资源
        最近更新 更多