关于枚举类一直有点不是很清楚,查了下资料,总结了一下。
首先枚举的类修饰符,枚举类的修饰符只有一个public,还有一个修饰符是默认的final(只是默认,不可以显式表示,如果显式表示会有这么一个错:
Illegal modifier for the enum Operation; only public is permitted,也就是说枚举类的修饰符只能是public),也就是不能被其他类继承,
其构造函数的修饰符只能用private修饰(如果不加,默认还是private),也就是说不能被其他类创建对象。
枚举类可以有抽象方法,有了抽象方法,那么这个枚举类也就是抽象的了,你默认的final修饰符改为abstract(但还是不能加显式加到类前面去修饰,只是默认),既然是抽象类,那么就不能创建实例,只能通过其实现类来创建实例,在这就用匿名内部类来表示,PLUS = new Operation (){},在枚举类表示为PLUS(){},然后重写抽象方法;