Ce este o metodă abstractă?

În programarea orientată pe obiecte, subrutinele numite „metode” sunt folosite pentru a efectua funcții într-un program. Aceste metode constau în instrucțiuni de programare care efectuează o acțiune, setează parametrii de intrare pentru a personaliza acțiunile și pot returna sau scoate o valoare a unui fel de obiect sau clasă. Metodele sunt acțiunile efectuate într-un program dintr-o anumită clasă sau în cadrul unui obiect și sunt folosite pentru a accesa și manipula datele stocate într-un obiect. Există multe metode diferite și fiecare are o anumită utilizare. Un tip specific care este realizat dintr-o super-clasă abstractă și moștenit de subclase este cunoscut ca o metodă abstractă.

În general, metoda abstractă realizează puțină sau deloc implementare în cadrul superclasei sale abstracte. Codurile conținute în acest tip de metodă sunt considerate coduri fictive și nu sunt implementate în sine. Aceasta nu înseamnă că metoda abstractă specifică dintr-o anumită clasă abstractă nu este folosită. Mai degrabă, metoda abstractă acționează ca model sau substituent pentru subclase pentru a finaliza implementarea metodei.

Superclasele pot conține mai multe subclase și toate subclasele unei superclase au anumite stări și comportamente similare. Clasele abstracte, prin urmare, sunt un tip de clasă virtuală care prezintă moștenire virtuală. Aceasta înseamnă că orice subclasă derivată dintr-o super-clasă moștenește restricțiile super-clasei din care este derivată. Prin urmare, metodele din subclase sunt derivate din metode abstracte ale superclaselor. Când programează și folosește metode abstracte, programatorul trebuie să declare clasa abstractă și nu virtuală.

De exemplu, o super clasă de „Obiecte grafice” conține subclasele „Cerc”, „Pătrat” etc. Ca atare, toate cercurile și pătratele au aceleași stări – orientare, poziție, culoare de umplere, culoarea liniei – și comportamente – moveTo , redimensionați, rotiți, desenați — ca „Obiecte grafice”. Toate subclasele din această super clasă au aceleași calități, dar sunt implementate în moduri diferite. Metoda abstractă a superclasei oferă bazele fără implementare, iar subclasele realizează implementarea reală folosind aceleași metode. Chiar dacă fiecare subclasă folosește aceeași metodă ca și clasa abstractă, ele definesc în mod unic modul în care metoda va fi efectuată.

Folosirea unei metode abstracte permite generalizarea la nivelul superior sau super-clasa și specificarea la nivelurile inferioare sau subclasele. Această ierarhie minimizează cantitatea de programare a metodei pentru fiecare subclasă specifică. Utilizarea acestor metode permite, de asemenea, idempotenta subclaselor, ceea ce înseamnă că, dacă o metodă este implementată din nou și din nou, rezultatul este același de fiecare dată.