一個枚舉類型是不能extends任何類或另一個枚舉類型的。但是可以實現一個或多個接口。例如
package?implinterface;
public?interface?Abbrevable
{
????String?abbrev();
}
package?implinterface;
public?interface?Multiplierable
{
????double?multiplier();
}
package?implinterface;
public?enum?Prefix?implements?Abbrevable,?Multiplierable
{
????//?These?are?the?values?of?this?enumerated?type.
????//?Each?one?is?followed?by?constructor?arguments?in?parentheses.
????//?The?values?are?separated?from?each?other?by?commas,?and?the
????//?list?of?values?is?terminated?with?a?semicolon?to?separate?it?from
????//?the?class?body?that?follows.
????MILLI("m",?.001),?
????CENTI("c",?.01),?
????DECI("d"),?
????DECA("D",?10.0),?
????HECTA("h",?100.0),?
????KILO("k",?1000.0);??//?Note?semicolon
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????//?semicolon
????//?This?is?the?constructor?invoked?for?each?value?above.
????private?Prefix(String?abbrev,?double?multiplier)
????{
????????this.abbrev?=?abbrev;
????????this.multiplier?=?multiplier;
????}
????
????//Another?constructor
????private?Prefix(String?abbrev)
????{
????????this.abbrev?=?abbrev;
????????this.multiplier?=?.1;
????}
????
????//?These?are?the?private?fields?set?by?the?constructor
????private?String?abbrev;
????private?double?multiplier;
????//?These?are?accessor?methods?for?the?fields.?They?are?instance?methods
????//?of?each?value?of?the?enumerated?type.
????public?String?abbrev()
????{
????????return?abbrev;
????}
????public?double?multiplier()
????{
????????return?multiplier;
????}
}
package?implinterface;
public?class?TestPrefix
{
????public?static?void?main(String[]?args)
????{
????????Prefix?p?=?Prefix.MILLI;
????????System.out.println(p.abbrev());
????????System.out.println(Prefix.class);
????}
}