Kas yra abstraktus metodas?

Objektiniame programavime paprogramės, vadinamos „metodais“, yra naudojamos funkcijoms programoje atlikti. Šiuos metodus sudaro programavimo teiginiai, kurie atlieka veiksmą, nustato įvesties parametrus veiksmams pritaikyti ir gali grąžinti arba išvesti tam tikro objekto ar klasės reikšmę. Metodai yra veiksmai, atliekami programoje iš tam tikros klasės arba objekte ir naudojami prieiti prie objekto saugomų duomenų ir jais manipuliuoti. Yra daug skirtingų metodų ir kiekvienas turi tam tikrą paskirtį. Konkretus tipas, kuris atliekamas iš abstrakčios super klasės ir paveldimas poklasių, yra žinomas kaip abstraktus metodas.

Paprastai abstrakčiojo metodo abstrakčioje super klasėje jis mažai įgyvendinamas arba visai neįgyvendinamas. Šio metodo kodai laikomi netikrais kodais ir patys neįgyvendinami. Tai nereiškia, kad konkretus abstraktus metodas tam tikroje abstrakčioje klasėje nėra naudojamas. Atvirkščiai, abstraktus metodas veikia kaip poklasių modelis arba rezervuota vieta, kad užbaigtų metodo įgyvendinimą.

Superklasėse gali būti keli poklasiai, o visi super klasės poklasiai turi tam tikras panašias būsenas ir elgseną. Todėl abstrakčios klasės yra virtualių klasių tipas, kuriame yra virtualus paveldėjimas. Tai reiškia, kad bet kuris poklasis, gautas iš superklasės, paveldi superklasės, iš kurios jis yra kilęs, apribojimus. Todėl poklasių metodai yra kilę iš abstrakčių superklasių metodų. Programuodamas ir naudodamas abstrakčius metodus, programuotojas turi paskelbti klasę abstrakčią, o ne virtualią.

Pavyzdžiui, superklasę „Grafiniai objektai“ sudaro poklasiai „Apskritimas“, „Kvadratas“ ir t. t. Taigi visi apskritimai ir kvadratai turi tas pačias būsenas – orientaciją, padėtį, užpildymo spalvą, linijos spalvą ir elgseną – perkelti į , keisti dydį, pasukti, piešti – kaip „grafinius objektus“. Visi šios super klasės poklasiai turi tas pačias savybes, tačiau jie įgyvendinami skirtingai. Abstraktus super klasės metodas suteikia pagrindą be diegimo, o poklasiai realų įgyvendinimą atlieka naudodami tuos pačius metodus. Nors kiekvienas poklasis naudoja tą patį metodą kaip ir abstrakčioji klasė, jie vienareikšmiškai apibrėžia metodo vykdymo būdą.

Naudojant abstrakčiąjį metodą, galima apibendrinti aukščiausiu lygiu arba superklase, o specifikuoti žemesniuose lygiuose arba poklasiuose. Ši hierarchija sumažina metodų programavimą kiekvienam konkrečiam poklasiui. Naudojant šiuos metodus taip pat galima nustatyti poklasių idempotenciją, o tai reiškia, kad jei metodas yra įgyvendinamas vėl ir vėl, rezultatas kiekvieną kartą yra tas pats.