小编Got*_*ank的帖子

在这种情况下,如何避免switch语句

我想避免使用switch声明,但我不知道如何.这是我的问题:

public class Person{
    String status;

    public void doSomething(){
        switch (status) {
        case "hungry":
                eatSomething();
                status = "full";
            break;
        case "full":
                doNothing();
                status = "hungry";
        default:
            break;
        }
    }}
Run Code Online (Sandbox Code Playgroud)

我想做这样的事情:

    public abstract class Person{
        public abstract void doSomething();
}

public class HungryPerson extends Person{
        @Override
        public void doSomethink() {
            eatSomething();
        }
}


public class FullPerson extends Person{
    @Override
    public void doSomething() {
            doNothing();
    }   
}
Run Code Online (Sandbox Code Playgroud)

问题是:如果Person他吃了一些东西,那么他必须是FullPerson,但如果我有一个参考,HungryPerson我怎么能改变它FullPerson

int main(){
    Person person …
Run Code Online (Sandbox Code Playgroud)

java oop

1
推荐指数
1
解决办法
193
查看次数

标签 统计

java ×1

oop ×1