我可以在这种情况下使用枚举吗?

用户00001

假设有一个 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我可以在这种情况下使用swift通用

我可以在这种情况下避免使用纯纯虚函数吗?

在这种情况下我可以正确使用flex吗?

在这种特殊情况下,我可以使用Nginx作为反向代理吗?

在这种特定情况下,我们可以使用android数据绑定替换findViewById()吗?

在这种情况下可以实现hashCode()方法吗?

在这种情况下可以重写ToString()方法吗

在这种情况下可以更改图标吗?

在这种情况下可以实现Rest Api吗?

在这种情况下,我可以从反应式库中受益吗?

在这种情况下,我可以参考该键吗?

我是C ++的新手,可以在这种情况下解释指针吗

Django:在这种情况下我可以省略“.save(commit=False)”吗?

在这种情况下,我可以避免变异吗?

在这种情况下,我需要“默认”语句吗?

在这种情况下我必须删除内存吗?

在这种情况下我应该检查指针吗?

C#“使用”语句后跟try语句在这种情况下可以忽略括号吗?

SQL-在这种情况下可以避免使用游标吗?

在这种情况下可以使用事件委托吗?

在这种情况下使用 SQL PIVOT 吗?

在这种情况下应该使用cron工作吗?

在这种情况下,我应该使用reduceLeft方法吗?

在这种情况下,我应该使用隔离范围吗?

在这种简单情况下,我应该使用同步块吗?

在这种情况下我的 strcmp 使用不正确吗?

在这种简单情况下,我应该坚持使用LINQ吗?

在这种情况下,我应该使用应用内购买吗?

在这种情况下我应该使用智能指针吗?