1、枚举不能继承任何类,因为编译时会隐式继承Enum类。
2、编译器最终将enum处理为一个final class,枚举无法被继承。
3、编译器会默认生成valutOf()方法和values()方法,你可以直接使用。
4、枚举进阶使用时可以定义多个字段,需要定义带参构造函数,无参构造定义与否取决于是否使用,这点和class一致。
一个最简单的枚举类
public enum Company{
Apple,
Tesla
}
public class X {
public static void main(String[] args) {
Company c1 = Company.Apple;
Company c2 = Company.valueOf("Apple");
Company[] companies = Company.values();
System.out.println(c2);
System.out.println(Arrays.toString(companies));
}
}
Apple
[Apple, Tesla]
public enum Company{
Apple,
Tesla;
private String desc;
private Company(){
}
private Company(String desc){
this.desc = desc;
}
}