CalculatoareSoftware-ul

Categoria abstractă și metoda: descriere, caracteristici și caracteristici. Care este diferența dintre clasa abstractă și interfața

Oricine are cel puțin o cunoaștere minimă a programării, se întreba de ce există clase de bază abstracte. Care este scopul lor? Cum de a crea o clasă abstractă? Care sunt avantajele pe care le oferă în practică? De ce sunt necesare în programare și ce caracteristici ale implementării lor trebuie luate în considerare?

Clase abstracte

Deci, în programare se numește o unitate de cod de program, pe baza căreia obiectele nu pot fi create. Trebuie remarcat faptul că moștenitorii acestei clase nu pot fi abstracți. Prin urmare, crearea de obiecte pe baza lor este foarte posibilă. Dacă luăm în considerare un exemplu din Java, atunci vom construi un astfel de model: putem descrie constructorii din clasa A. Dar nu le putem folosi. Modul de ieșire din această situație este de a declara o variabilă ca referință. Și este necesar să se precizeze în mod clar că aceasta indică un obiect de clasă A. Dar cum se poate face acest lucru? Distribuția ne va ajuta în acest sens. Trebuie remarcat faptul că clasa părintească este întotdeauna considerată mai universală decât copilul. În multe limbi de programare, distribuția este utilizată automat. Dar dacă nu există încredere în disponibilitatea unui astfel de mecanism, atunci trebuie să specificați în mod explicit o referință la obiect.

Metode rezumate

Ce sunt ei? Metodele abstracte sunt cele care nu au o implementare în clasa în cauză. Deci, după ce parantezele (în care sunt enumerate argumentele folosite în ele) nu se deschide curul (după care este plasat blocul descrierii metodei), ci doar o punct și virgulă. Astfel, în acest caz, nu există informații despre ceea ce face el. Aici puteți pune întrebarea: "De ce este metoda fără implementare?" La urma urmei, nu poate fi folosit! Desigur, acest lucru nu este posibil în clasa în care a fost descris. Dar dacă luăm în considerare această situație din punctul de vedere al descendenților, atunci se poate numi. Și va funcționa în funcție de descrierea specifică disponibilă în această clasă.

Caracteristici ale metodelor abstracte

Există limitări în utilizarea lor. Luați în considerare acest lucru în exemplul limbajului de programare Java. Există o astfel de cerință: dacă există cel puțin o astfel de metodă în clasă, atunci trebuie să fie neapărat abstractă. Și în ce cazuri este oportun să se utilizeze astfel de construcții? Să ne uităm la asta în cazul orelor de companie. În primul rând, trebuie înțeles că nu există niciun sunet pe care toți îl publică. Prin urmare, în clasa cea mai generală, nu este specificată implementarea metodei sonore. Dar pentru el este creat un corp, care este separat de blocuri. Și deja în viitor, când se creează o clasă de câini, pisici sau hamsteri, va fi prescrisă o metodă separată pentru aceasta, în cadrul căruia vor fi dezvăluite toate trăsăturile.

interfață

În programare, au fost create multe instrumente al căror scop este de a ajuta o persoană să facă un produs de bună calitate. Și în cadrul subiectului examinat, atenția ar trebui acordată acestui aspect, astfel încât toată lumea să cunoască diferența dintre clasa abstractă și interfața. Deci, particularitatea celui din urmă este că nu poate avea proprietăți, iar metodele nu au corpuri. Explorând diferența dintre clasa abstractă și interfața, trebuie să observăm încă o caracteristică. Deci, primul este moștenit, în timp ce al doilea este realizat. Pentru o persoană neexperimentată, acest lucru poate părea nesemnificativ. Dar faptul este că numai o singură clasă poate fi moștenită și puteți implementa cât de mult doriți. Acesta este modul în care interfața diferă de clasa abstractă. Java are alte caracteristici pe care le poate descrie numai metode publice abstracte și constante statice. Dar interfețele pot fi, de asemenea, moștenite. În acest caz, este necesar să se indice că operatorii utilizați sunt public folosind public.

Moștenire interfață multiplă

Această funcție nu este disponibilă pentru clase în mai multe limbi de programare (de exemplu, în Java pe care îl gândim). Acest lucru se datorează unui număr de probleme. Ca atare, indicați ambiguitatea care apare atunci când moșteniți. Acesta a fost motivul pentru introducerea mai multor interfețe de moștenire. Acest lucru rezolvă parțial problemele existente, dar nu toate. Prin urmare, datorită principiilor de încapsulare și polimorfism, interfețele pot fi implementate cu succes în diferite clase prin metode diferite (deși vor avea același nume). Dar nu uitați de problemele existente. Deci, atunci când lucrați cu mai multe interfețe, va trebui întotdeauna să specificați cine ne referim. De asemenea, vor apărea probleme atunci când încercați să lucrați cu două metode cu același nume, caz în care acestea nu pot fi utilizate. Prin urmare, pentru astfel de cazuri este necesar să se aibă grijă de disponibilitatea unei implementări comune.

Rezumate date

Acest concept este esențial în programare. În acest caz, abstractizarea este înțeleasă ca o considerație independentă și separarea interfeței și implementarea ei. Să ne uităm la un exemplu. Avem un televizor, care este un obiect sau un modul. Are o interfață. Ca atare, există controale pentru acesta, precum și redarea sunetului și imaginii. Cu cât este mai avansat interfața, cu atât este mai convenabil ca televizorul să fie în proces de utilizare. Putem schimba programele făcând clic pe orice buton. În acest caz, nu este nevoie să ne gândim la procesele fizice din televizor. Acestea sunt îngrijite de specialiștii care colectează dispozitivul. Suntem interesați numai de proprietăți ca utilizatori. Revenind la programare, putem spune că prin această analogie sunt interfața și implementarea. De asemenea, dacă o persoană are încredere în cunoștințele sale, el poate "scoate" capacul de la televizorul nostru ipotetic și îl poate îmbunătăți. Deși acest lucru poate duce la succese locale, în majoritatea cazurilor rezultatul final este negativ. Prin urmare, programarea interzice accesul și ascunde componentele interne pentru datele abstracte. Principiul acestui mecanism prevede modalități de a preveni modificările intenționate sau accidentale ale componentelor interne. Iar când vorbesc despre tipuri de date abstracte, înseamnă agregatul lor cu o multitudine de operații care pot fi efectuate pe ele.

obiecte

Am examinat deja clasa abstractă și interfața în general și în general. Acum, să ne facem puțină cunoștință. În primul rând, vom acorda atenție obiectelor. Prin ele în cazul general se înțelege o parte a realității înconjurătoare care există în spațiu și timp. Dar este destul de dificil să definim în mod formal obiecte în cadrul programării (din punct de vedere filosofic și teoretic). Prin urmare, acest lucru se datorează proprietăților sale. Ca un exemplu, se poate cita următoarele: un obiect poate fi identificat în mod unic (are un nume unic), este într-o anumită stare și utilizează un anumit model de comportament.

moștenire

Deoarece programarea se bazează pe construirea unui arbore ierarhic al relațiilor dintre obiecte, se pune problema că proprietățile bibliotecilor de coduri părinte ar trebui transferate la tipurile de bază. Moștenirea este înțeleasă ca o relație atunci când se repetă comportamentul și structura altceva. În viața obișnuită, acest lucru se poate găsi peste tot. Acest lucru a fost, de asemenea, transferat la programare cu privire la elementele abstracte. Ca o comparație, putem menționa faptul că nu există un astfel de organism ca o pasăre. Acesta este un nume abstract. Ca specimen specific, aduceți un pescăruș, o lăcustă sau o vrabie. Datorită moștenirii, putem folosi bibliotecile de clasă, precum și le putem dezvolta pentru un anumit program. O astfel de unealtă ne permite să creăm obiecte noi, adăugând sau schimbând simultan proprietățile unui deja creat. Moștenitorul primește toate metodele și câmpurile strămoșilor săi și, dacă este necesar, își dobândește propriile atribute. Datorită faptului că există elemente abstracte și principiul patrimoniului, există ample oportunități de modificare în cadrul programării orientate obiect. În plus, vă permite să abordați în mod flexibil soluția sarcinilor. Când moșteniți, datele și funcțiile sunt transmise noii clase.

polimorfism

Este necesar pentru a aplica aceleași funcții pentru a rezolva diferite tipuri de sarcini. În acest caz, există posibilitatea de a efectua diverse acțiuni, ale căror conținut va depinde de tipul de obiect cu care se desfășoară lucrările. Polimorfismul este înțeles ca proprietate a elementelor care au un părinte comun, efectuează probleme similare în sensul semantic în diferite moduri. Atragem o analogie cu animalele. Există o astfel de acțiune - de a alerga. Cu toții înțelegem cum se întâmplă. Dar cu animale diferite (leu, elefant, cimpanzeu, crocodil, broasca testoasa) aceasta actiune se va face diferit. În acest caz, dezvoltatorul este responsabil pentru mișcarea lor, care, dacă este necesar, poate cauza un anumit subprogram pentru un anumit caz, dezvoltarea unui algoritm și implementarea cu succes a acestuia. Acest lucru se face folosind un set de metode. În acest caz, în fiecare clasă separată, programatorul indică ce obiect are proprietățile inerente. Schimbând ceva în descendenți, puteți obține anumite acțiuni necesare în acest caz. O astfel de influență se numește polimorfism obiect. În general, o clasă abstractă este un instrument de programare extrem de util.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ro.unansea.com. Theme powered by WordPress.