@Override Java 父 Class

@Override Java Parent Class

这是我在父级中的代码 class

public boolean ChoiceOfItem(){
    if (bread)
        this.Choice("bread");
    if (meat)
        this.Choice("meat");
    if (lettuce)
        this.Choice("lettuce");
    if (tomato)
        this.Choice("tomato");
    if (carrot)
        this.Choice("carrot");
    return false;
}

这个来自扩展(非父)class:

@Override
public boolean ChoiceOfItem() {
    if (ryeBread)
        this.Choice("ryeBread");
    return false;
}

我的问题是哪里出了问题,什么是正确的? 期待您的留言。如果有必要,我将能够发送整个代码。

ChoiceOfItem 在处理某些项目时可能需要 return true,因此仅在这种情况下 return false。

public boolean choiceOfItem(){
    if (bread)
        this.Choice("bread");
    else if (meat)
        this.Choice("meat");
    else if (lettuce)
        this.Choice("lettuce");
    else if (tomato)
        this.Choice("tomato");
    else if (carrot)
        this.Choice("carrot");
    else return false;
    return true;
}

@Override
public boolean choiceOfItem() {
    if (super.choiceOfItem())
        return true;
    if (ryeBread) {
        this.Choice("ryeBread");
        return true;
    }
    return false;
}

一开始说那些方法都是return假的。 @Override 只是一个标记,告诉编译器该方法已被覆盖。例如,当您更改父 class 的方法签名时,这很有意义,因此编译器会在子 class 中告诉您您不再在这里重写。