Elemente ale modelului obiect Java: clasă abstractă, interfață

Ideea principală a clasei abstracte constă în următoarea teză: uneori nu sunt necesare clase gata, ci într-o formă "brută". Astfel de blank-uri nu pot fi folosite direct (creați instanțe).java abstract class

Care este clasa abstractă în Java?

Să luăm în considerare un alt exemplu. Există în Java o clasă abstractă Calendar în pachetul Java.util. Aceasta nu pune în aplicare un anumit calendar, care este utilizat, de exemplu, în Europa de Vest și Europa de Est, China, Coreea de Nord, Thailanda, etc Dar are multe caracteristici utile, cum ar fi adăugarea de câteva zile la o anumită dată: .. Aceste funcții sunt necesare pentru orice implementarea calendarului. Nu puteți crea o instanță dintr-o clasă abstractă.

Clase abstracte, metode abstracte Java

Să presupunem că doriți să dezvolte mai multe elemente grafice, de exemplu, forme geometrice: .. Un cerc, dreptunghi, stele, etc. Și există un container care le atrage. Fiecare componentă are un aspect diferit, astfel încât metoda corespunzătoare (să fie numită vopsea) este implementată diferit. Cu toate acestea, fiecare componentă are multe asemănări: .. Cifra trebuie inclusă în cutie poate avea o culoare să fie vizibile și invizibile, etc. Cu alte cuvinte, trebuie să creați o clasă părinte pentru toate aceste cifre, în cazul în care fiecare componentă vor moșteni proprietățile generale.clase abstracte metode abstracte java Dar cum rămâne cu metoda vopselei? La urma urmei, clasa părinte nu are o reprezentare vizuală. Dacă declarați metoda vopselei în fiecare clasă în mod independent, va trebui să analizați componenta care este procesată și apoi aruncați tipul. Prin urmare, metoda ar trebui să fie declarată abstractă în clasa parentală: setați antetul metodei fără corp. Și fiecare clasă derivată își va descrie corpul. În Java clasă abstractă pot încheia metode abstracte.

Dacă o clasă are metode abstracte, atunci clasa este abstractă. Înainte de cuvântul de clasă se pune cuvântul cheie abstract, în antetul metodei. După capul acestei metode, trebuie să introduceți un punct și virgulă. În Java, o clasă abstractă nu poate genera instanțe. Dacă vrem să interzicem crearea lor, chiar dacă clasa nu are metode abstracte, atunci clasa poate fi declarată abstractă. Dar dacă o clasă are cel puțin o metodă abstractă, atunci clasa trebuie să fie abstractă. Este imposibil ca clasa să fie abstractă, finală și metodă. Metoda nu poate fi abstractă, privată, statică, nativă. Pentru ca clasele moștenitorilor să fie declarate nereactive și să creeze instanțele lor, trebuie să implementeze toate metodele abstracte ale părintelui. Clasa însăși poate folosi metodele sale abstracte.

exemplu:

  • clasă abstractă AClass {
  • public abstract metoda void (int a) -
  • }
  • clasa BClass extinde clasa {
  • metoda void public (int a) {
  • // corp
  • }

Sunt permise variabilele de tip clasă abstractă. Aceștia pot face referire la descendentul non-abstract din această clasă sau pot fi nul.

Interfețe în Java - o alternativă la moștenirea multiplă

interfețe și clase de java abstract

Java nu are moștenire multiplă, pentru că atunci există anumite probleme. O clasă nu poate moșteni din mai multe clase. Dar poate implementa mai multe interfețe.



Interfețe și clase abstracte Java - conceptele sunt similare, dar nu identice. Interfața poate fi declarată ca publică, atunci este disponibilă tuturor, sau puteți omite publicul modificator, atunci interfața este disponibilă numai în cadrul pachetului său. Cuvântul cheie abstract nu este necesar, deoarece interfața este deja abstractă, dar o puteți specifica.

Declarație de interfață

diferența dintre clasa abstractă și interfața java

Începe cu un antet și mai întâi poate fi urmat de cuvântul cheie public, apoi de interfața cuvântului. Apoi se poate extinde cuvântul și enumerarea interfețelor din care este moștenit. Nu sunt permise repetări și este imposibil ca relația de moștenire să fie ciclică. Apoi vine corpul de interfață, închis în bretele. Elementele câmpurilor sunt declarate în corpul de interfață: câmpuri constante și metode abstracte. Toate câmpurile sunt publice statice - toți acești modificatori sunt opționali. Toate metodele sunt considerate abstracte publice - acești modificatori pot fi, de asemenea, specificați. Acum, destul de suficient a spus despre diferența de clasă abstractă de la interfața Java.

  • interfața publică AI extinde B, C, D {
  • // corp
  • }

Pentru a declara o clasă ca moștenitor al interfeței, trebuie să utilizați cuvântul cheie implementează:

  • clasa AClass implementează BI, CI, DI {}

Adică dacă numele interfeței este specificat în declarația de clasă după implementare, atunci clasa o implementează. Moștenitorii acestei clase își moștenesc elementele, așa că și ei o implementează.

Sunt permise și variabilele tipului de interfață. Acestea se pot referi la tipul de clasă care implementează această interfață sau null. Astfel de variabile au toate elementele clasei Obiect, deoarece obiectele sunt generate din clase, iar cele de la rândul lor sunt moștenite din clasa Obiect.

În acest articol, am analizat câteva elemente ale modelului de obiect Java - clase abstracte, metode abstracte, interfețe.

Distribuiți pe rețelele sociale:

înrudit
Cum se actualizează Java pe sistemele de operare Linux și Windows?Cum se actualizează Java pe sistemele de operare Linux și Windows?
Primul program Java este Hello WorldPrimul program Java este Hello World
Tablouri abstracte ca o modalitate de a reflecta lumea voastră interioarăTablouri abstracte ca o modalitate de a reflecta lumea voastră interioară
Tatuajele abstracte reprezintă o ocazie de a vă expune gândurileTatuajele abstracte reprezintă o ocazie de a vă expune gândurile
Desen abstract - cum și ce poți să o desenezi?Desen abstract - cum și ce poți să o desenezi?
Țigarete Java: descriere și tipuriȚigarete Java: descriere și tipuri
Java: expresii regulate, caractere specialeJava: expresii regulate, caractere speciale
Programare: Java. Tipuri de dateProgramare: Java. Tipuri de date
Clasă și metodă abstractă: descriere, caracteristici și caracteristici. Care este diferența dintre…Clasă și metodă abstractă: descriere, caracteristici și caracteristici. Care este diferența dintre…
Mediu de dezvoltare integrat JavaMediu de dezvoltare integrat Java
» » Elemente ale modelului obiect Java: clasă abstractă, interfață