31.12.2014 Views

Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...

Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...

Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

3. Paveld÷jimas <strong>ir</strong> polimorfizmas<br />

Trys OOP banginiai<br />

Mes jau artimai susipažinome su vienu iš Objektiškai Orientuoto Programavimo<br />

banginių - inkapsuliacija. Šiame skyrelyje panagrin÷sime likusius du - paveld÷jimą <strong>ir</strong><br />

polimorfizmą.<br />

Paveld÷jimas <strong>ir</strong> polimorfizmas gerokai palengvina daugkartinį kodo panaudojimą:<br />

• galime naudotis jau anksčiau parašytomis klas÷mis kaip bazin÷mis tam, kad<br />

sukurti savas, specializuotas, kartu paveldint visus bazin÷s klas÷s duomenis <strong>ir</strong><br />

kodą. Belieka tik pr<strong>ir</strong>ašyti paveld÷tai klasei specifinius laukus <strong>ir</strong> metodus;<br />

• kodas, manipuliuojantis objetais, dažnai gali su visa klasių hierarchija d<strong>ir</strong>bti<br />

vienodai, t.y. jis neturi būti dubliuojamas kiekvienai klasei atsk<strong>ir</strong>ai, o rašomas tik<br />

bazinei klasei.<br />

Šie du teoriniai pamastymai plačiau atsiskleis, kuomet panagrin÷sime keletą<br />

pavyzdžių. Vienas natūraliausių objektiškai orientuoto programavimo pritaikymų -<br />

kompiuterin÷ grafika. Tarkime, turime abstrakčią figūros sąvoką Shape, <strong>ir</strong> konrečias<br />

figūras C<strong>ir</strong>cle, Square <strong>ir</strong> Rectangle. Tuomet:<br />

• paveld÷jimas leidžia užrašyti natūralų faktą: C<strong>ir</strong>cle, Square <strong>ir</strong> Rectangle yra<br />

figūros. OOP sąvokomis sakoma, kad jos paveldi iš klas÷s Shape. Tokiu būdu, jei<br />

bazin÷ figūra tur÷s centro koordinates, tai <strong>ir</strong> paveld÷jusios figūros jas tur÷s.<br />

• polimorfizmas leidžia realizuoti apskritimų, kvadratų <strong>ir</strong> stačiakampių elgsenos<br />

sk<strong>ir</strong>tumus, pvz. paišymą, ploto skaičiavimą <strong>ir</strong> pan..<br />

Grafiniuose pavyzdžiuose naudosime biblioteką Qt, kurią galima rasti internete<br />

adresu www.trolltech.com<br />

Naudojimosi šia biblioteka dokumentacija su pamokomis yra adresu<br />

doc.trolltech.com<br />

84

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!