mai simplă explicație de clasă Abstractă și Interfață

Aceasta este, probabil, întrebarea cea mai întrebat în interviuri legate de dezvoltarea de Software sau programe de asigurare a calității. Am văzut din experiența mea că de multe ori mulți dintre noi se confundă sau uită definiția și utilizarea claselor și interfețelor abstracte. Deci, vreau să fac mai ușor, astfel încât nimeni nu are probleme cu ea vreodată din nou.

clasa abstractă și interfețele sunt doi pivoți foarte vitali în conceptul de Programare orientată pe obiecte.,

la început, voi explica clasa abstractă și utilizarea acesteia, iar mai târziu vom trece în interfețe.

clasa abstractă nu este nimic special să se uite la atunci când doriți să se diferențieze cu o clasă obișnuită. Dar are unele metode care sunt neimplementate, sau doar declarate, nu sunt definite. În acest caz, toate aceste metode și clasa în sine sunt redenumite cu cuvântul cheie „abstract”.

o clasă abstractă poate avea unul sau mai multe număr de metode neimplementate.,deoarece o clasă abstractă nu este adecvată sau nu are metode definite în mod ideal în comparație cu o clasă obișnuită, astfel încât clasele abstracte nu pot fi instanțiate, ceea ce înseamnă că nu putem crea obiecte directe ale claselor abstracte.clasele care moștenesc / extind această clasă abstractă trebuie să implementeze / definească toate metodele abstracte ale clasei abstracte părinte.

dacă o clasă nu reușește să definească oricare dintre metodele abstracte, acea clasă devine, de asemenea, o clasă abstractă.,

Utilizare (un studiu de caz imaginar):

Să presupunem că, în 1995, ați proiectat o clasă de mașini care avea o caracteristică suplimentară-ar putea zbura. Ai proiectat clasa auto foarte frumos, toate metodele au fost foarte standard și eficient, dar atunci, ai știut că a fost destul de imposibil să pună în aplicare carFlying() metoda. Deci, tocmai ați păstrat carFlying () metoda necompletată sau neimplementată (acum știți că este o metodă abstractă, precum și o clasă!).,astăzi, vreau să implementez acea mașină zburătoare pe care ați proiectat-o deja și tehnologia nu mai este imposibilă. Mașina pe care o voi construi are toate caracteristicile similare cu mașina dvs. și, în plus, poate zbura. Deci, ce pot face este că pot moșteni („extinde” – pentru Java) clasa dvs. abstractă și trebuie să definească/implementeze acea metodă abstractă carFlying (). poftim! mașina noastră zburătoare este gata să se rostogolească.deci, ori de câte ori avem unele caracteristici comune sau comportament între diverse obiecte, putem face o clasă abstractă generală cu acea caracteristică ca metodă implementată., Dar acele obiecte ar putea avea comportamente distincte, în acest caz, vom declara o metodă abstractă și vom implementa aceste metode abstracte diferit în funcție de nevoia obiectului.

exemplu de clasă abstractă:

încă o dată, să luăm în considerare un exemplu, o grămadă de luptători primesc aceeași sumă de bani pe oră pentru a juca. dar au muzică tematică diferită și strategie de luptă finală. Deci, putem păstra metoda de plată aceeași pentru toți și să o implementăm într-o clasă numită Wrestler., să declare themeMusic() și finisher () metode ca abstracte, deoarece aceste două trebuie să fie puse în aplicare în mod diferit pentru diferite obiecte în alte clase care moștenește clasa noastră Wrestler Abstract.

și principalul.java:

Interfata:

Dacă ați trecut prin partea superioară a acestui tutorial corect, înțelegere interfață va fi foarte ușor pentru tine.

interfața nu este o clasă, doar interfața sa. Are câteva metode fără corp în interiorul ei, doar semnătura metodei (acestea sunt practic metode abstracte!,), și poate avea unele variabile finale și statice. Și, o clasă tipică „implementează” interfețe, nu „se extinde”.

interfețe Multiple pot fi implementate (în general, moștenite) la un moment dat.clasele care moștenesc / implementează interfețele trebuie să definească toate metodele abstracte ale interfeței.

metodele din interiorul interfețelor sunt în mod implicit publice, nule și abstracte.

interfața este un fel de moștenire multiplă în limbajul de programare Java.

Nu putem instantia interfețe prea la fel ca clase abstracte., Pentru că sunt entități incomplete și nu ar trebui să li se permită să fie realizate. Dar, uneori, o activitate precum instanțierea poate fi aplicabilă pentru aceasta cu ajutorul clasei interioare anonime. Asta nu e agenda noastră astăzi aici.

utilizarea interfeței:

interfețele economisesc timpul de codare. Acesta poate conține unele variabile statice și finale care pot fi accesate la nivel global. și unele metode care sunt abstracte și ușor disponibile pentru utilizare ulterioară oricând pentru oricine implementează interfața.,

exemplu de interfață:

în exemplul de mai sus al clasei abstracte, am văzut că o metodă era aceeași pentru toți cei care aveau un corp în interiorul clasei abstracte și alte metode erau abstracte. dar pentru interfețe, toate metodele sunt acum doar semnătură. Clasa StoneCold implementează interfața Wrestler și definește toate cele trei metode abstracte ale acesteia în funcție de nevoia sa.de data aceasta, luptătorii diferite obține sumă diferită de bani pe oră. Deci, este cel mai convenabil să puneți aceeași metodă ca abstractul și să o definiți în altă parte în funcție de nevoia obiectului.,

public interface Wrestler {
public abstract void paymentForWork (int hours);
public abstract void themeMusic();
public abstract void finisher();
}

și următoarea clasă implementează interfața Wrestler.

Pentru principal.java:

pentru initierea obiectelor in cazul unei clase abstracte sau a unei interfete, puteti tine cont de urmatoarele:

A obj= new B();
//where A is an interface/abstract class. B is the concrete(implements/extends "A”)class which gives it’s memory to A’s obj to have access into B class and utilize its defined methods.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *