Kaj je abstraktna metoda?

V objektno usmerjenem programiranju se za izvajanje funkcij v programu uporabljajo podprogrami, imenovani “metode”. Te metode so sestavljene iz programskih stavkov, ki izvedejo dejanje, nastavijo vhodne parametre za prilagajanje dejanj in lahko vrnejo ali izpišejo vrednost neke vrste predmeta ali razreda. Metode so dejanja, ki se izvajajo v programu iz določenega razreda ali znotraj objekta in se uporabljajo za dostop do podatkov, shranjenih v objektu, in njihovo manipulacijo. Obstaja veliko različnih metod in vsaka ima posebno uporabo. Specifičen tip, ki se izvaja iz abstraktnega nadrazreda in ga podedujejo podrazredi, je znan kot abstraktna metoda.

Na splošno abstraktna metoda izvaja malo ali nič izvajanja znotraj svojega abstraktnega nadrazreda. Kode, ki jih vsebuje tovrstna metoda, se štejejo za lažne kode in se same ne izvajajo. To ne pomeni, da se posebna abstraktna metoda v določenem abstraktnem razredu ne uporablja. Nasprotno, abstraktna metoda deluje kot model ali nadomestni element za podrazrede za dokončanje izvajanja metode.

Superrazredi lahko vsebujejo več podrazredov in vsi podrazredi superrazreda imajo določena podobna stanja in obnašanja. Abstraktni razredi so torej vrsta navideznega razreda, ki izkazuje navidezno dedovanje. To pomeni, da vsak podrazred, izpeljan iz superrazreda, podeduje omejitve superrazreda, iz katerega je izpeljan. Zato so metode v podrazredih izpeljane iz abstraktnih metod superrazredov. Pri programiranju in uporabi abstraktnih metod mora programer razred razglasiti za abstrakten in ne za virtualen.

Na primer, superrazred »grafičnih objektov« vsebuje podrazrede »krog«, »kvadrat« itd. Kot taki imajo vsi krogi in kvadrati enaka stanja – orientacijo, položaj, barvo polnila, barvo črte – in obnašanje – moveTo , spreminjanje velikosti, vrtenje, risanje — kot »grafični predmeti«. Vsi podrazredi v tem superrazredu imajo enake lastnosti, vendar se izvajajo na različne načine. Abstraktna metoda superrazreda zagotavlja temelje brez implementacije, podrazredi pa izvajajo dejansko izvedbo z uporabo istih metod. Čeprav vsak podrazred uporablja isto metodo kot abstraktni razred, enolično definira način, na katerega se bo metoda izvajala.

Uporaba abstraktne metode omogoča posplošitev na najvišji ravni ali nadrazredu in specifikacijo na nižjih ravneh ali podrazredih. Ta hierarhija minimizira količino programiranja metod za vsak poseben podrazred. Uporaba teh metod omogoča tudi idempotenco podrazredov, kar pomeni, da če se metoda izvaja znova in znova, je rezultat vsakič enak.