Što je sučelje u Javi?
Sučelja u Javi programiranje definira kao apstraktnog tipa koji se koriste za određivanje ponašanja klase. Java sučelje sadrži statičke konstante i apstraktne metode. Klasa može implementirati više sučelja. U Javi se sučelja deklariraju pomoću ključne riječi sučelje. Sve metode u sučelju su implicitno javne i apstraktne.
Sintaksa za deklariranje sučelja
interface {//methods}
Da biste koristili sučelje u klasi, dodajte ključnu riječ "implementira" iza naziva klase, a zatim imena sučelja.
Primjer za implementaciju sučelja
class Dog implements Pet
interface RidableAnimal extends Animal, Vehicle
Kliknite ovdje ako videozapis nije dostupan
Zašto je potrebno sučelje?
Da bismo bolje razumjeli koncept Java sučelja, pogledajmo primjer. Klasa "Media Player" ima dvije potklase: CD uređaj i DVD uređaj. Svaka ima svoju jedinstvenu metodu implementacije za reprodukciju glazbe.
Druga klasa "kombiniranog pogona" nasljeđuje i CD i DVD (vidi sliku dolje). Koju metodu igre treba naslijediti? To može uzrokovati ozbiljne probleme s dizajnom. Stoga Java ne dopušta višestruko nasljeđivanje.
Uzmimo sada još jedan primjer Psa.
Pretpostavimo da imate zahtjev gdje klasa "pas" nasljeđuje klasu "životinja" i "kućni ljubimac" (vidi sliku dolje). Ali na Javi ne možete proširiti dvije klase. Pa što biste učinili? Rješenje je Sučelje.
Pravilnik za sučelje kaže,
- Sučelje je 100% apstraktne klase i ima samo apstraktne metode.
- Klasa može implementirati bilo koji broj sučelja.
Razredni pas može se proširiti na klasu "Životinja" i implementirati sučelje kao "Ljubimac".
Primjer Java sučelja:
Korak 1) Kopirajte sljedeći kod u editor.
sučelje Pet {test javne praznine ();}razred Pas provodi Pet {test javne praznine () {System.out.println ("Primijenjena metoda sučelja");}javna statička void glavna (String args []) {Ljubimac p = novi pas ();p.test ();}}
Korak 2) Spremite, prevedite i pokrenite kôd. Promatrajte izlaz.
Razlika između klase i sučelja
Razred | Sučelje |
---|---|
U klasi možete instancirati varijablu i stvoriti objekt. | U sučelju ne možete instancirati varijablu i stvoriti objekt. |
Predavanje može sadržavati konkretne (s implementacijom) metode | Sučelje ne može sadržavati konkretne (s implementacijom) metode |
Specifikatori pristupa koji se koriste s klasama su privatni, zaštićeni i javni. |
U sučelju se koristi samo jedan specifikator - javni. |
Kada koristiti klasu sučelja i sažetka?
- Upotrijebite apstraktnu klasu kada treba definirati predložak za grupu potklasa
- Koristite sučelje kada treba definirati ulogu za druge klase, bez obzira na stablo nasljeđivanja tih klasa
Morate znati činjenice o sučelju
- Java klasa može implementirati više Java sučelja. Potrebno je da klasa mora implementirati sve metode deklarirane u sučeljima.
- Klasa bi trebala nadjačati sve apstraktne metode deklarirane u sučelju
- Sučelje omogućuje slanje poruke objektu bez obzira kojoj klasi pripada.
- Klasa mora osigurati funkcionalnost za metode deklarirane u sučelju.
- Sve metode u sučelju su implicitno javne i apstraktne
- Sučelje se ne može instancirati
- Referenca sučelja može ukazivati na objekte svojih klasa implementacije
- Sučelje se može proširiti iz jednog ili više sučelja. Klasa može proširiti samo jednu klasu, ali implementirati bilo koji broj sučelja
- Sučelje ne može implementirati drugo sučelje. Ako je potrebno, mora proširiti još jedno sučelje.
- Sučelje koje je deklarirano unutar drugog sučelja naziva se ugniježđeno sučelje
- U vrijeme deklaracije, varijabla sučelja mora biti inicijalizirana. U suprotnom će kompajler izbaciti pogrešku.
- Klasa ne može implementirati dva sučelja u javi koja imaju metode s istim imenom, ali različitim tipom povratka.
Sažetak :
- Klasa koja implementira sučelje mora osigurati funkcionalnost za metode deklarirane u sučelju
- Sve metode u sučelju su implicitno javne i apstraktne
- Sučelje se ne može instancirati
- Referenca sučelja može ukazivati na objekte svojih klasa implementacije
- Sučelje se može proširiti iz jednog ili više sučelja. Klasa može proširiti samo jednu klasu, ali implementirati bilo koji broj sučelja