我想避免使用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)