![](/img/trans.png)
[英]The method updateUI() of type ActivityMap must override or implement a supertype method
[英]Java can't override method used in constructor: The method setupAnimationFrames() of type Slime must override or implement a supertype method
我在覆蓋從Java中的父類繼承的方法時遇到問題。 我父母班的摘錄:
public Character(String spriteLabel, float frameTime, float speed, float x, float y) {
// Setup font and nameplate
this.setupAnimationFrames();
....
this.currentFrame = downFrames[0];
}
private void setupAnimationFrames() {
...
}
在我的孩子班上,我正在嘗試:
public class Slime extends Character {
@Override
private void setupAnimationFrames() {
...
}
public Slime() {
super("...", 0.15f, 2,727,300);
}
}
但是,Eclipse告訴我:
The method setupAnimationFrames() of type Slime must override or implement a supertype method
我已經檢查過,並且將project / workspace屬性設置為使用Java 1.6,這似乎是導致此錯誤的常見原因。
為什么Java不讓我重寫該方法?
重寫僅適用於子類可見的那些實例方法。由於超類setupAnimationFrames()
方法是私有的,因此對子類不可見,因此,重寫不適用於此處。您正在此處實現自己的方法。只需刪除@Override
注釋即可編譯代碼。
PS:-僅出於驗證目的,您可以使用任何返回類型實現setupAnimationFrames()
方法,也可以引發任何已檢查的異常,它將進行編譯(但當然帶有@Override注釋)
private String setupAnimationFrames() {
//This compiles in child class,return type is different from parent class
...
}
private List setupAnimationFrames() throws Throwable {
//This compiles in child class ,a checked Throwable has been added to
//method signature
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.