使用enum关键字定义的枚举类实现接口的情况

情况一:实现接口,在enum类中实现抽象方法 情况二:让枚举类的对象分别实现接口中的抽象方法

代码如下:

public class SeasonTest {

    public static void main(String[] args) {
        Season spring = Season.SPRING;
        spring.show();
    }
}

enum Season implements Info {

    //1.提供当前枚举类的对象,多个对象之间用","隔开,末尾对象";"结束
    SPRING("春天", "春天") {
        @Override
        public void show() {
            System.out.println("春天");
        }
    },
    SUNMER("夏天", "夏天") {
        @Override
        public void show() {
            System.out.println("夏天");
        }
    },
    AUTUMN("秋天", "秋天") {
        @Override
        public void show() {
            System.out.println("秋天");
        }
    },
    Season("冬天", "冬天") {
        @Override
        public void show() {
            System.out.println("冬天");
        }
    };

    //2.声明Season对象的属性:private final修饰
    private final String name;
    private final String desc;

    //3.私有化类的构造器,并给对象属性赋值
    private Season(String name, String desc) {
        this.name = name;
        this.desc = desc;
    }

    //4.其他诉求,获取枚举类的属性
    public String getName() {
        return name;
    }

    public String getDesc() {
        return desc;
    }

    //其他诉求,提供toString()方法
    @Override
    public String toString() {
        return "Season{" +
                "name=" + name +  +
                ", desc=" + desc +  +
                };
    }


    @Override
    public void show() {
        System.out.println("季节");
    }
}

interface Info {
    void show();
}

结果:

春天

经验分享 程序员 微信小程序 职场和发展