枚举继承enum

虽然在声明enum时不能继承一个超类,但是所有的枚举都自动的继承java.lang.Enum.该类定义了多个方法,可供所有的枚举使用.大多数情况下并不需要使用这些方法,但有两个方法可能会偶尔用到:ordinal()和compareTo().
ordinal()方法包含一个指示枚举常量在常量列表中的位置的值,称为顺序值.ordinal()方法如下所示:
final  int ordinal()
他返回调用常量的顺序值.顺序值从0开始.因此,在Transport枚举中,CAR的顺序值是0,TRUCK是1,AIRPLANE是2,以此类推.
可以使用compareTo()方法来比较相同枚举中的两个常量的顺序值.该方法的基本形式如下所示:
final int compareTo(enum-type e)
其中,enum-type是枚举类型,e是调用常量相比较的常量.注意,调用常量和e常量相比较的常量.注意,调用常量和e常量必须是相同枚举的常量.如果调用常量的顺序小于e常量的顺序值,那么compareTo()方法返回负数;如果两个顺序值相等,该方法返回0;如果调用常量的顺序大于e常量的顺序值,那么返回正数.
下面的程序演示了ordinal()和compareTo()方法:
public class test2
{
    // @param args
    public static void main(String args[])
    {
     Transport tp,tp2,tp3;
     
     for(Transport t : Transport.values())
         System.out.println(t+" : "+t.ordinal());
     
     tp = Transport.AIRPLANE;
     tp2 = Transport.BOAT;
     
     System.out.println("tp comparteTo tp2 :  "+tp.compareTo(tp2));
    }
}
enum Transport
{
    CAR,TRUCK,AIRPLANE,TRAIN,BOAT;
}
程序输出如下所示:
CAR : 0
TRUCK : 1
AIRPLANE : 2
TRAIN : 3
BOAT : 4
tp comparteTo tp2 : -2