Java enum Κληρονομικότητα και διασύνδεση

Σε αυτό το σεμινάριο, θα μάθετε γιατί δεν είναι δυνατή η κληρονομικότητα των τάξεων enum. Θα μάθετε επίσης να εφαρμόζετε διεπαφές σε μια κλάση enum.

Πριν μάθετε αυτό το σεμινάριο, βεβαιωθείτε ότι γνωρίζετε

  • Η Java αθροίζει
  • Κληρονομιά Java
  • Διεπαφές Java

Κληρονομική τάξη από μια κλάση enum

Στην Java, οι κλάσεις enum είναι finalαπό προεπιλογή. Ως εκ τούτου, δεν μπορούμε να κληρονομήσουμε άλλες τάξεις από αυτό. Για παράδειγμα,

 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 από άλλη τάξη

Δεν μπορούμε να επεκτείνουμε μαθήματα enum στην Java. Είναι επειδή όλα τα αθροίσματα στην Java προέρχονται από java.lang.Enum. Και η επέκταση πολλαπλών τάξεων (πολλαπλή κληρονομιά) δεν επιτρέπεται στην Java.

Για παράδειγμα,

 class A ( // class body ) enum B extends A ( // class body ) 

Αυτό θα δημιουργήσει ένα σφάλμα.

Java Enum και διασύνδεση

Όπως μάθαμε, δεν μπορούμε να κληρονομήσουμε μαθήματα enum στην Java. Ωστόσο, οι κλάσεις enum μπορούν να εφαρμόσουν διεπαφές.

Παράδειγμα: διεπαφή εφαρμογής enum

 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(); ) ) 

Παραγωγή

 Το μέγεθος είναι MEDIUM 

Στο παραπάνω παράδειγμα, έχουμε δημιουργήσει ένα μέγεθος κλάσης enum. Αυτή η τάξη εφαρμόζει τη διεπαφή Pizza.

Δεδομένου ότι εφαρμόζουμε μια διεπαφή, έχουμε παράσχει μια εφαρμογή της αφηρημένης μεθόδου displaySize()μέσα στην κλάση enum.

ενδιαφέροντα άρθρα...