![](/img/trans.png)
[英]Java "method does not override or implement a method from a supertype" error
[英]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.