Šioje pamokoje sužinosite, kodėl neįmanoma paveldėti „enum“ klases. Jūs taip pat išmoksite įdiegti sąsajas „enum“ klasėje.
Prieš išmokdami šią pamoką, būtinai žinokite apie tai
- „Java“ sąrašai
- Java paveldėjimas
- „Java“ sąsajos
Klasės paveldėjimas iš „enum“ klasės
„Java“ sistemoje „enum“ klasės yra final
numatytosios. Taigi mes negalime iš jo paveldėti kitų klasių. Pavyzdžiui,
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“ klasės paveldėjimas iš kitos klasės
Mes negalime pratęsti „Java“ klasių. Taip yra todėl, kad visi „Java“ sąrašai yra paveldėti java.lang.Enum
. „Java“ neleidžiama išplėsti kelių klasių (daugkartinio paveldėjimo).
Pavyzdžiui,
class A ( // class body ) enum B extends A ( // class body )
Tai sukels klaidą.
„Java Enum“ ir sąsaja
Kaip sužinojome, negalime paveldėti „Java“ „enum“ klasės. Tačiau „enum“ klasės gali įdiegti sąsajas.
Pavyzdys: „enum“ sąsaja
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(); ) )
Rezultatas
Dydis yra MEDIUM
Ankstesniame pavyzdyje mes sukūrėme enum klasę Dydis. Ši klasė įdiegia „Pizza“ sąsają.
Kadangi mes diegiame sąsają, mes pateikėme abstrakčiojo metodo displaySize()
įgyvendinimą enum klasėje.