Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...
Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...
Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...
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