【问题标题】:Class implements Interface that extends another Interface类实现了扩展另一个接口的接口
【发布时间】:2016-04-28 22:15:20
【问题描述】:

我想在我的类中实现一个从另一个接口扩展的接口,但我收到以下错误:

Class1 不是抽象的,不会覆盖 Interface2 中的抽象方法 method2(param1,param2)

public class Class1 implements Interface1 {       
    public Class1() {
        //some init
    }

    @Override
    public Object method1(Object param1) {
        //some code
    }

    @Override
    public void method2(Object param1, Object param2) {
        //some code
    }         
}

public interface Interface1 extends Interface2 {       
     //some specific code
}

public interface Interface2 {
    public Object method1(Object param1);
    public void method2(Object param1, Object param2);
}

为什么它不起作用,我必须做什么才能让它起作用?

【问题讨论】:

  • 您没有正确覆盖 method2,因为接口签名不返回任何内容,并且您的实现返回 Object
  • 抱歉打错了,我已经更正了!
  • 插入 param1 和 param2 的类型...如果您使用正确的参数覆盖方法,此示例将编译得很好。
  • 您提供的“示例代码”没有重现您在帖子中描述的错误!

标签: java class interface extends implements


【解决方案1】:

提供参数 param1 和 param2 的类型 试试这个

  public class Class1 implements Interface1 {       
    public Class1() {
        //some init
    }

    @Override
    public Object method1(String param1) {
        //some code
        return null;
    }

    @Override
    public void method2(String param1,String param2) {
        //some code
    }         
}


 interface Interface1 extends Interface2 {       
     //some specific code
}


 interface Interface2 {
    public Object method1(String param1);
    public void method2(String param1,String param2);
}

【讨论】:

  • 啊...对象只是这段代码中的一个示例...我的代码中并没有真正使用它,但是谢谢...
  • 我的错误如下:在接口2中,我在方法参数中使用了一个枚举,并且..我在接口2中定义了它......
猜你喜欢
  • 2012-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-22
  • 1970-01-01
  • 2010-10-21
相关资源
最近更新 更多