Mis on abstraktne meetod?

Objektorienteeritud programmeerimises kasutatakse programmi funktsioonide täitmiseks alamprogramme, mida nimetatakse “meetoditeks”. Need meetodid koosnevad programmeerimislausetest, mis sooritavad toimingu, seadistavad toimingute kohandamiseks sisendparameetrid ja võivad tagastada või väljastada mingi objekti või klassi väärtuse. Meetodid on toimingud, mida tehakse programmis teatud klassist või objekti sees ning mida kasutatakse objektis salvestatud andmetele juurdepääsuks ja nendega manipuleerimiseks. Meetodeid on palju ja igaühel neist on konkreetne kasutusala. Konkreetset tüüpi, mida teostatakse abstraktsest superklassist ja pärivad alamklassid, nimetatakse abstraktseks meetodiks.

Üldiselt rakendab abstraktne meetod oma abstraktse superklassi piires vähe või üldse mitte. Seda tüüpi meetodites sisalduvaid koode peetakse näilikeks koodideks ja neid ise ei rakendata. See ei tähenda, et konkreetse abstraktse klassi spetsiifilist abstraktset meetodit ei kasutataks. Pigem toimib abstraktne meetod alamklasside mudeli või kohahoidjana, et lõpetada meetodi rakendamine.

Superklassid võivad sisaldada mitut alamklassi ning kõikidel superklassi alamklassidel on teatud sarnased olekud ja käitumised. Abstraktsed klassid on seega teatud tüüpi virtuaalsed klassid, millel on virtuaalne pärand. See tähendab, et iga superklassist tuletatud alamklass pärib selle superklassi piirangud, millest see on tuletatud. Seetõttu on alamklasside meetodid tuletatud superklasside abstraktsetest meetoditest. Abstraktsete meetodite programmeerimisel ja kasutamisel peab programmeerija klassi kuulutama pigem abstraktseks kui virtuaalseks.

Näiteks superklass “Graafilised objektid” sisaldab alamklasse “Ring”, “Ruut” jne. Seetõttu on kõigil ringidel ja ruutudel samad olekud – orientatsioon, asend, täitevärv, joone värv – ja käitumine – liigu kuhu. , muutke suurust, pöörake, joonistage – kui “graafilised objektid”. Kõigil selle superklassi alamklassidel on samad omadused, kuid neid rakendatakse erineval viisil. Superklassi abstraktne meetod annab aluse ilma juurutamata ja alamklassid teostavad tegeliku juurutamise samu meetodeid kasutades. Kuigi iga alamklass kasutab sama meetodit kui abstraktne klass, määravad nad unikaalselt meetodi, kuidas meetodit rakendatakse.

Abstraktse meetodi kasutamine võimaldab üldistamist tipptasemel ehk superklassil ja täpsustamist madalamatel tasanditel ehk alamklassides. See hierarhia minimeerib iga konkreetse alamklassi meetodi programmeerimise mahu. Nende meetodite kasutamine võimaldab ka alamklasside idempotentsust, mis tähendab, et kui meetodit rakendatakse ikka ja jälle, on tulemus iga kord sama.