簡體   English   中英

Java錯誤:方法未從超類型重寫或實現方法

[英]java error: method does not override or implement a method from a supertype

我有3個類,它們的配置如下:Class1有一些方法,其中一些是抽象的:

package package1;

public abstract class class1{
    protected abstract void methodX();

    public boolean methodY(){
        //method implementation
    }

    public String thisIsTheMethodThatMatters(){
        //method implementation
    }
}

接下來,同一包中的class2擴展了class1,覆蓋了其抽象方法並添加了其他一些方法:

package package1;

public class class2 extends class1{
    @Override
    protected final void methodX(){
        //method implementation
    }

    public boolean methodZ(){
        //method implementation
    }
}

最后,來自另一個包的class3擴展了class2並覆蓋了class1中的方法:

package package2;

import package1.class2;

public class class3 extends class2{
    @Override
    public String thisIsTheMethodThatMatters(){
        //method implementation
    }
}

我正在使用Eclipse,並且在編碼時不會檢測到任何錯誤。 我正在使用Maven Build構建項目,但是構建失敗時說thisIsTheMethodThatMatters() 不會覆蓋或實現超類型的方法 ,因此我要確保package1在package2之前構建,因此我認為問題不存在。

如果您在class1中定義了方法(thisIsTheMethodThatMatters),並且將其作為訪問修飾符,則可能會發生這種情況。 換句話說,如果方法的簽名是

protected String thisIsTheMethodThatMatters()

那么您將收到錯誤,因為基於上述情況該方法將不會被class3繼承

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM