不是抽象的,也不会覆盖抽象方法[重复]

Posted

技术标签:

【中文标题】不是抽象的,也不会覆盖抽象方法[重复]【英文标题】: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;
  

【问题讨论】:

【参考方案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?
    

【讨论】:

以上是关于不是抽象的,也不会覆盖抽象方法[重复]的主要内容,如果未能解决你的问题,请参考以下文章

错误:ConstantsService 不是抽象的,并且不会覆盖 ConstantsInterface 中的抽象方法 getAppScopeKey()

AListener不是抽象的,并且不会在ActionListener中覆盖抽象方法actionPerformed(ActionEvent)

非抽象且不覆盖抽象方法 - IDL

C#中接口和抽象类

Android-Java-抽象类

抽象派生类中的抽象方法覆盖/实现抽象基类的抽象或具体方法。如何以及为啥?