当前位置: 首页 > 面试题库 >

Java-错误:返回类型不兼容

姚星宇
2023-03-14
问题内容

我正在学习Java。我试图运行代码,但出现此错误:return type is incompatible。它向我显示错误的代码部分。

class A {
    public void eat() { }
}

class B extends A {
    public boolean eat() { }
}

为什么会这样呢?


问题答案:

这是因为在类中不能有两个具有相同名称但返回类型不同的方法。

子类不能使用与返回类型不同的超类中已经存在的方法相同的名称声明方法。

但是,子类可以声明具有与超类相同的签名的方法。我们称此为“覆盖”。

你需要这个

class A {
    public void eat() { }
}

class B extends A {
    public void eat() { }
}

要么

class A {
    public boolean eat() { 
        // return something...
    }
}

class B extends A {
    public boolean eat() { 
        // return something...
    }
}

一个好的做法是通过注释标记覆盖的方法@Override

class A {
    public void eat() { }
}

class B extends A {
    @Override
    public void eat() { }
}


 类似资料:
  • 在典型的 Rust 函数中,返回的值若是有个错误的类型,将导致出现如下所示的错误: error[E0308]: mismatched types --> src/main.rs:2:12 | 1 | fn foo() { | - expected `()` because of default return type 2 | return "foo" |

  • 我一直试图编译这个简单的警报对话框,以便在用户单击提交按钮时显示。编译代码时会弹出一条错误消息: 错误:(33,74)错误:不兼容的类型: 这个类叫做Login_Activity,它扩展了BaseActivity,它扩展了Activity。

  • 我在抽象课上有以下内容... 还有另一个类,它继承了这个类... 当我从主类执行以下调用时,我收到一个错误... 我的问题是..为什么会发生这种情况?我的getEntityById不是返回T型的东西,在这种情况下应该是产品吗? 我在 Netbeans 中工作,编译时未显示任何错误。 感谢您的帮助=)

  • 当使用Google Protocol Buffers Version3.0.0(发行版)时,maven编译以下生成的java-class会导致编译器错误: 这只是生成的类之一,所有类的maven错误都是一样的,如下所示: 这些类包含在工作的Maven-Tycho-Build配置中,其类路径上有protobuf-java-3.0.0.jar。在Eclipse中编译代码时,它没有编译器错误。 此外,当

  • 问题内容: 我在写一些代码,遇到编译错误。这就是我所拥有的: 我以为使用继承时没有正确声明泛型,所以我检查了Oracle的教程,他们在其中编写 上面的声明使用相同的泛型类型,这是我在示例中要完成的工作。似乎假设from 与from 有所不同。否则,它应该能够 将 两者 合并并看到相同的类型。如何正确实现我要实现的目标? ( 即,某物的常量是某物的值,这是同一物的表达 ) 问题答案: 您的变量定义为