列挙型は抽象メソッドを持つことができますか?もしそうなら、何を使用し、この使用法を説明するシナリオを与えます。
はい。ただし、インターフェイスを実装する列挙型 こちらをご覧ください をお勧めします。私はそれがはるかに良く見えると思います。これは抽象メソッドの例です。
public enum Animal {
CAT {
public String makeNoise() { return "MEOW!"; }
},
DOG {
public String makeNoise() { return "WOOF!"; }
};
public abstract String makeNoise();
}
はい、abstract
宣言でenum
メソッドを定義できますif if onlyすべての列挙値にカスタムクラスボディがあるこれらのメソッドの実装を使用します(具体的な列挙値に実装がない場合があります)。
public enum Foo {
BAR {
public void frobnicate() {
// do BAR stuff
}
},
BAZ {
public void frobnicate() {
// do BAZ stuff
}
};
public abstract void frobnicate();
}