Šajā apmācībā jūs uzzināsit par to, kāpēc nav iespējama enum klases mantošana. Jūs arī iemācīsities ieviest saskarnes enum klasē.
Pirms mācāties šo apmācību, pārliecinieties, ka zināt par
- Java uzskaitījumi
- Java mantojums
- Java saskarnes
Klases mantošana no uzskaites klases
Java final
pēc noklusējuma ir enum klases . Tādējādi mēs nevaram no tā mantot citas klases. Piemēram,
enum A ( // enum constants // fields and methods ) class B extends A ( public static void main(String() args) ( // statements ) ) # Error: cannot inherit from final A
Enum klases pārmantošana no citas klases
Mēs nevaram pagarināt enum klases Java. Tas ir tāpēc, ka visi Java saraksti tiek mantoti no java.lang.Enum
. Java nav atļauts paplašināt vairākas klases (vairākkārtēja mantošana).
Piemēram,
class A ( // class body ) enum B extends A ( // class body )
Tas radīs kļūdu.
Java Enum un saskarne
Kā mēs esam iemācījušies, mēs nevaram pārmantot Java enum klases. Tomēr enum klases var ieviest saskarnes.
Piemērs: enum interfeisa ieviešana
interface Pizza ( public void displaySize(); ) enum Size implements Pizza ( SMALL, MEDIUM, LARGE, EXTRALARGE; public void displaySize() ( System.out.println("The size is " + this); ) ) class Main ( public static void main(String() args) ( Size.MEDIUM.displaySIze(); ) )
Rezultāts
Izmērs ir MEDIUM
Iepriekš minētajā piemērā mēs esam izveidojuši enum klases Size. Šajā klasē tiek ieviesta Pizza saskarne.
Tā kā mēs īstenojam saskarni, mēs esam nodrošinājuši abstraktās metodes displaySize()
ieviešanu enum klasē.