Ce este Interfața în Java cu Exemplu

Cuprins:

Anonim

Ce este interfața în Java?

O interfață în programarea Java este definită ca un tip abstract utilizat pentru a specifica comportamentul unei clase. O interfață Java conține constante statice și metode abstracte. O clasă poate implementa mai multe interfețe. În Java, interfețele sunt declarate folosind cuvântul cheie pentru interfață. Toate metodele din interfață sunt implicit publice și abstracte.

Sintaxa pentru declararea interfeței

interface {//methods}

Pentru a utiliza o interfață în clasa dvs., adăugați cuvântul cheie „implementează” după numele clasei dvs., urmat de numele interfeței.

Exemplu pentru implementarea interfeței

class Dog implements Pet
interface RidableAnimal extends Animal, Vehicle

Faceți clic aici dacă videoclipul nu este accesibil

De ce este necesară o interfață?

Pentru a înțelege mai bine conceptul de interfață Java, să vedem un exemplu. Clasa „Media Player” are două subclase: CD player și DVD player. Fiecare are metoda sa de implementare unică pentru a reda muzică.

O altă clasă "unitate combinată" moștenește atât CD-ul, cât și DVD-ul (vezi imaginea de mai jos). Ce metodă de joc ar trebui să moștenească? Acest lucru poate cauza probleme grave de proiectare. Și, prin urmare, Java nu permite moștenirea multiplă.

Acum să luăm un alt exemplu de câine.

Să presupunem că aveți o cerință în care clasa „câine” care moștenește clasa „animal” și „Animal de companie” (a se vedea imaginea de mai jos). Dar nu puteți extinde două clase în Java. Deci, ce ai face? Soluția este Interfață.

Ghidul de reguli pentru interfață spune:

  • O interfață este 100% clasă abstractă și are doar metode abstracte.
  • Class poate implementa orice număr de interfețe.

Class Dog se poate extinde la clasa „Animal” și poate implementa interfața ca „Pet”.

Exemplu de interfață Java:

Pasul 1) Copiați următorul cod într-un editor.

interfață Pet {test de vid public ();}clasa Câine implementează Pet {test public nul () {System.out.println ("Metoda de interfață implementată");}public static main main (String args []) {Pet p = câine nou ();p.test ();}}

Pasul 2) Salvați, compilați și rulați codul. Observați ieșirea.

Diferența dintre clasă și interfață

Clasă Interfață
În clasă, puteți instanția variabila și puteți crea un obiect. Într-o interfață, nu puteți instanția variabila și nu puteți crea un obiect.
Clasa poate conține metode concrete (cu implementare) Interfața nu poate conține metode concrete (cu implementare)

Specificatorii de acces utilizați cu clase sunt private, protejate și publice.

În interfață este utilizat un singur specificator - Public.

Când se utilizează interfața și clasa abstractă?

  • Utilizați o clasă abstractă atunci când trebuie definit un șablon pentru un grup de subclase
  • Utilizați o interfață atunci când un rol trebuie definit pentru alte clase, indiferent de arborele de moștenire al acestor clase

Trebuie să știți fapte despre interfață

  • O clasă Java poate implementa mai multe interfețe Java. Este necesar ca clasa să implementeze toate metodele declarate în interfețe.
  • Clasa ar trebui să înlocuiască toate metodele abstracte declarate în interfață
  • Interfața permite trimiterea unui mesaj către un obiect fără a se referi la ce clase aparține.
  • Clasa trebuie să ofere funcționalitate pentru metodele declarate în interfață.
  • Toate metodele dintr-o interfață sunt implicit publice și abstracte
  • O interfață nu poate fi instanțiată
  • O referință de interfață poate indica obiectele claselor sale de implementare
  • O interfață se poate extinde de la una sau mai multe interfețe. Clasa poate extinde o singură clasă, dar poate implementa orice număr de interfețe
  • O interfață nu poate implementa o altă interfață. Dacă este necesar, trebuie să extindă o altă interfață.
  • O interfață declarată în interiorul altei interfețe este denumită interfață imbricată
  • În momentul declarării, variabila de interfață trebuie inițializată. În caz contrar, compilatorul va arunca o eroare.
  • Clasa nu poate implementa două interfețe în java care au metode cu același nume, dar cu un tip de returnare diferit.

Rezumat :

  • Clasa care implementează interfața trebuie să ofere funcționalitate metodelor declarate în interfață
  • Toate metodele dintr-o interfață sunt implicit publice și abstracte
  • O interfață nu poate fi instanțiată
  • O referință de interfață poate indica obiectele claselor sale de implementare
  • O interfață se poate extinde de la una sau mai multe interfețe. O clasă poate extinde doar o singură clasă, dar poate implementa orice număr de interfețe