假设有一个 Flower 抽象类,它可以来自 SUMMER、SPRING 或 ALL_SEASONS 类型。现在,像紫罗兰这样的花既可以是夏季也可以是春季。我如何在 Java 中表示它?我首先尝试使用 Enums 来实现它,但此时卡住了。
你的需求是实现一个有季节的Flower类,我实现了一个解决方案,不是最好的,但它揭示了基本的OOP继承机制和枚举,我希望它会帮助你
一、季节枚举
public enum Season{
SUMMER, SPRING, WINTER, AUTUMN;
public static List<Season> allSeason(){
return Arrays.asList(values());
}
}
接下来是抽象类 Flower
public abstract class Flower {
abstract List<Season> seasons();
}
然后是两个扩展 Flower 并且必须定义季节行为的类
class Poppy extends Flower{
@Override
List<Season> seasons() {
return Arrays.asList(Season.SPRING, Season.SUMMER);
}
}
class Anthurium extends Flower{
@Override
List<Season> seasons() {
return Season.allSeason();
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句