Sučelje u Java s Primjerom

⚡ Pametni sažetak

Sučelje u Java je trbušnjaktract tip koji određuje ponašanje koje klasa mora implementirati, a sadrži konstante i abstract metode. Ovaj resurs objašnjava što je sučelje, zašto je potrebno, kako ga deklarirati i implementirati te kako se sučelja razlikuju od klasa i abs.tract klase.

  • 📜 Definicija: Sučelje određuje ponašanje pomoću abstract metode i konstante koje implementacijske klase moraju osigurati.
  • 🔑 Ključna riječ: Sučelja se deklariraju ključnom riječi interface, a klase koriste implemente za njihovo usvajanje.
  • 🧩 Višestruko nasljeđivanje: Klasa može implementirati mnogo sučelja, rješavajući Javanedostatak višestrukog nasljeđivanja klasa.
  • ⚖️ Klasa u odnosu na sučelje: Za razliku od klasa, sučelja se ne mogu instancirati i tradicionalno sadrže samo javne abstract metode.
  • 🎯 Kada koristiti: Koristite sučelje za definiranje uloge za nepovezane klase i abstract klasa za dijeljeni predložak.

Sučelje u Java

Što je sučelje u Java?

An Sučelje u Java Programski jezik je definiran kao abstract tip koji se koristi za određivanje ponašanja klase. A Java sučelje sadrži statičke konstante i abstract metode. Klasa može implementirati više sučelja. U Java, sučelja se deklariraju pomoću ključne riječi interface. Sve metode u sučelju su implicitno javne i apsolutnotract.

Sintaksa za deklariranje sučelja

Da biste koristili sučelje u svojoj klasi, dodajte ključnu riječ „implements“ nakon naziva klase, a zatim naziv sučelja.

interface {
   // methods
}

Primjer implementacije sučelja

Sada, shvatimo sučelja u Java s primjerom:

class Dog implements Pet
interface RidableAnimal extends Animal, Vehicle

Kliknite ovdje ako video nije dostupan.

Kliknite ovdje ako video nije dostupan

Zašto je potrebno sučelje?

Razumjeti upotrebu sučelja u Java bolje, pogledajmo Java primjer sučelja. Klasa "Media Player" ima dvije podklase: CD player i DVD player. Svaka ima svoju jedinstvenu metodu implementacije sučelja za reprodukciju glazbe.

Zašto je potrebno sučelje

Druga klasa, "Combo drive", nasljeđuje i CD i DVD (vidi sliku ispod). Koju metodu reprodukcije treba naslijediti? To može uzrokovati ozbiljne probleme s dizajnom i stoga, Java ne dopušta višestruko baština.

Zašto je potrebno sučelje

Sada uzmimo još jedan primjer, psa.

Pretpostavimo da imate zahtjev gdje klasa "pas" nasljeđuje klase "životinja" i "Kućni ljubimac" (vidi sliku ispod). Ali ne možete proširiti dvije klase u JavaPa što biste učinili? Rješenje je sučelje.

Zašto je potrebno sučelje

Pravilnik za sučelje kaže:

  • A Java sučelje je 100% apsolutnotract klasa i ima samo abstract metode.
  • Klasa može implementirati bilo koji broj sučelja.

Klasa Pas može proširiti klasu „Životinja“ i implementirati sučelje „Kućni ljubimac“.

Zašto je potrebno sučelje

Java Primjer sučelja

Razumijemo donji program sučelja u Java:

Korak 1) Kopirajte sljedeći kod u editor.

interface Pet {
  public void test();
}
class Dog implements Pet {
   public void test() {
     System.out.println("Interface Method Implemented");
  }
   public static void main(String args[]) {
     Pet p = new Dog();
     p.test();
  }
}

Korak 2) Spremi, kompajliraj i pokreni kod. Promatraj izlaz sučelja u Java program.

Razlika između klase i sučelja

Klasa Sučelje
U klasi možete instancirati varijable i stvoriti objekt. U sučelju ne možete instancirati varijable ili stvoriti objekt.
Klasa 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 – public.

Kada koristiti Interface i Abstract klasa?

  • Koristite trbušne mišićetract klasa kada je potrebno definirati predložak za grupu podklasa.
  • Koristite sučelje kada je potrebno definirati ulogu za druge klase, bez obzira na stablo nasljeđivanja tih klasa.

Mora znati činjenice o sučelju

  • A Java klasa može implementirati više Java sučelja. Potrebno je da klasa implementira sve metode deklarirane u sučeljima.
  • Klasa bi trebala nadjačati sve trbušne mišićetract 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 apsolutnotract.
  • Sučelje se ne može instancirati.
  • Referenca sučelja može pokazivati ​​na objekte svojih implementacijskih klasa.
  • Sučelje se može proširiti s 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. Mora proširiti drugo sučelje ako je potrebno.
  • Sučelje koje je deklarirano unutar drugog sučelja naziva se ugniježđenim sučeljem.
  • Prilikom deklaracije, varijabla sučelja mora biti inicijalizirana. U suprotnom, kompajler će izbaciti grešku.
  • Klasa ne može implementirati dva sučelja u Java koje imaju metode s istim imenom, ali različitim tipom povrata.

Pitanja i odgovori

Da. AI asistenti mogu stvarati sučelja i implementirati klase iz opisa jednostavnim jezikom, uključujući i metode. Programeri bi i dalje trebali provjeriti potpise metoda, tipove povrata i ponašanje prije korištenja koda.

AI alati analiziraju sučelja kako bi predložili implementacije, otkrili nedostajuće metode i preporučili čišće ABS-ove.traccije tijekom refaktoriranja. To ubrzava razvoj uz održavanjeping kodna baza labavo povezana i lakša za održavanje.

Da. Od Java 8, sučelja mogu uključivati ​​zadane i statičke metode koje imaju implementacije, uz abstract metode. To omogućuje razvoj sučelja bez narušavanja postojećih implementacijskih klasa.

Marker sučelje ne sadrži metode. Ono signalizira metapodatke JVM-u ili kompajleru tako da oni posebno tretiraju implementacijske klase. Primjeri uključuju Serializable i Cloneable u standardu. Java knjižnica.

Sažmite ovu objavu uz: