Ce este o clasă abstractă și o metodă abstractă în Java? Când ar trebui să-l folosesc? Tutorial atasat

Publicat: 2019-09-12
tutorial-clasă-abstractă-java-prin-crunchify

Cu câteva zile în urmă, am scris un articol despre elementele fundamentale ale Java despre Ce este o interfață în Java și cum este utilizată? Acest tutorial este, de asemenea, legat de baza fundamentală Java „ Abstract Class and Abstract Method ”.

Ce este o clasă abstractă?

Să începem să înțelegem mai întâi clasa Abstract și apoi vom trece peste Exemplu.

  • O clasă abstractă este o clasă care este declarată abstract
  • Clasele abstracte nu pot fi instanțiate
  • Clasele abstracte pot fi subclasate
  • Poate include sau nu metode abstracte
  • Când o clasă abstractă este subclassed , subclasa oferă de obicei implementări pentru toate metodele abstracte din clasa sa părinte.
  • Dacă subclasa nu oferă implementări, atunci subclasa trebuie de asemenea să fie declarată abstract .

Aceasta este o basic Java Interview Question . Probabil 1 st Java Interview Question pe care o primiți în timpul interviului.

Pot defini o clasă abstractă fără a adăuga o metodă abstractă?

Desigur ca da. Declararea unui abstract de clasă înseamnă doar că nu permiteți ca aceasta să fie instanțiată pe cont propriu. Nu puteți avea o metodă abstractă într-o clasă non-abstractă.

Ce este o metodă abstractă?

  • O abstract method este o metodă care este declarată fără o implementare.
  • Are doar o semnătură de metodă.

Să începem cu un Exemplu. Descrierea problemei:

  1. Creați clasa CrunchifyExam.java , care are o metodă abstractă numită checkResult()
  2. Creați clasa Crunchify1stSchoolExamResult.java , care extinde clasa Abstract CrunchifyExam.java
  3. Creați clasa Crunchify2ndSchoolExamResult.java , care extinde clasa Abstract CrunchifyExam.java
  4. Acum ambele clase de mai sus trebuie să ofere implementare pentru metoda checkResult().
  5. Ambele școli pot avea propria lor procedure sau un number of checks pentru a afla dacă utilizatorul este PASSED or FAILED , sunt libere să aibă propria lor implementare a checkResult()

Odată ce extindeți clasa CrunchifyExam în Crunchify1stSchoolExamResult.java – Eclipse vă va solicita să implementați metodele Abstract menționate în CrunchifyExam.java

Implementați metoda abstractă - Tutorial Crunchify

Crunchify1 st SchoolExamResult.java

Crunchify2 nd SchoolExamResult.java

Rezultat consola Eclipse:

Faceți clic dreapta pe Crunchify2ndSchoolExamResult.java și rulați ca Java Application pentru a vedea rezultatul de mai jos.

Acum este posibil să aveți o întrebare

De ce nu pot folosi Interfața aici în loc să am Abstract Method și Class și să am CrunchifyExam ca interfață?

Ei bine – Sure you could – dar ar trebui să implementezi și getExamTime (), setExamTime (), getExamTime (), setExamTime ().

Folosind clase abstracte, puteți moșteni implementarea altor metode (non-abstracte). Nu puteți face asta cu interfețele – o interfață cannot provide nicio implementare a metodei.

Este posibil să creați o clasă abstractă și finală în Java?

  • Abstractul și finalul sunt conceptul care se exclud reciproc.
  • Deci răspunsul este NU, nu putem face o clasă abstractă sau o metodă finală în Java.
  • Clasa finală este o clasă completă și nu poate fi prelungită în continuare.
  • Clasa abstractă se numește clasă incompletă și poate fi extinsă doar de altă clasă concretă și trebuie să implementați toate metodele abstracte.
  • De asemenea, nu există nicio modalitate și nu este posibil să existe o metodă abstractă într-o clasă finală.

Este posibil să moșteniți din mai multe clase abstracte în Java?

  • Java nu acceptă moștenirea multiplă.
  • În java putem extinde doar o singură clasă.
  • În Java putem implementa interfețe din mai multe surse.