Što je apstraktna metoda?

U objektno orijentiranom programiranju, potprogrami koji se nazivaju “metode” koriste se za izvođenje funkcija u programu. Te se metode sastoje od programskih izraza koji izvode radnju, postavljaju ulazne parametre za prilagodbu radnji i mogu vratiti ili ispisati vrijednost neke vrste objekta ili klase. Metode su radnje koje se izvode u programu iz određene klase ili unutar objekta, a koriste se za pristup i manipulaciju podacima pohranjenim unutar objekta. Postoji mnogo različitih metoda i svaka ima posebnu namjenu. Specifičan tip koji se izvodi iz apstraktne super klase i nasljeđuje podklasama poznat je kao apstraktna metoda.

Općenito, apstraktna metoda izvodi malo ili nimalo implementacije unutar svoje apstraktne super klase. Kodovi sadržani u ovoj vrsti metode smatraju se lažnim kodovima i sami se ne implementiraju. To ne znači da se specifična apstraktna metoda u određenoj apstraktnoj klasi ne koristi. Umjesto toga, apstraktna metoda djeluje kao model ili rezervirano mjesto za podklase za završetak implementacije metode.

Super klase mogu sadržavati više podklasa, a sve podklase super klase imaju određena slična stanja i ponašanja. Prema tome, apstraktne klase su vrsta virtualne klase koja pokazuje virtualno nasljeđivanje. To znači da svaka potklasa izvedena iz super klase nasljeđuje ograničenja super klase iz koje je izvedena. Stoga su metode u podklasama izvedene iz apstraktnih metoda super klasa. Kada programira i koristi apstraktne metode, programer mora klasu deklarirati apstraktnom, a ne virtualnom.

Na primjer, super klasa “Grafičkih objekata” sadrži podklase “Krug”, “Kvadrat” itd. Kao takvi, svi krugovi i kvadrati imaju ista stanja – orijentaciju, položaj, boju ispune, boju linije – i ponašanja – moveTo , mijenjati veličinu, rotirati, crtati — kao “grafički objekti”. Sve podklase u ovoj super klasi imaju iste kvalitete, ali se implementiraju na različite načine. Apstraktna metoda super klase daje temelj bez implementacije, a podklase izvode stvarnu implementaciju koristeći iste metode. Iako svaka potklasa koristi istu metodu kao apstraktna klasa, ona na jedinstven način definira način na koji će se metoda provoditi.

Korištenje apstraktne metode omogućuje generalizaciju na najvišoj razini, ili superklasi, i specifikaciju na nižim razinama ili podklasama. Ova hijerarhija minimizira količinu programiranja metoda za svaku specifičnu podklasu. Korištenje ovih metoda također omogućuje idempotentnost podklasa, što znači da ako se metoda provodi iznova i iznova, rezultat je svaki put isti.