9.4.1 Luokan ominaisuuksien laajentaminen
Pidimme jo aikaisemmin toiveena sitä, että voisimme laajentaa
luokkaamme käsittelemään myös sekunteja. Miksi emme
tehneet tätä heti? No tietysti olisi heti pitänyt
älytä laittaa mukaan myös sekunnit, mutta
tosielämässäkin käy usein näin, eli
hyvästäkin suunnittelusta huolimatta toteutuksen loppuvaiheessa tulee
vastaan tilanteita, jossa alkuperäiset luokat todetaan
riittämättömiksi.
Tämän laajennuksen tekemiseen on olio- ohjelmoinnissa kolme
mahdollisuutta: Joko muuttaa alkuperäistä luokkaa, periä
alkuperäisestä luokasta laajempi versio tai tehdä uusi luokka,
jossa on alkuperäinen luokka yhtenä attribuuttina.
Tutustumme seuraavassa kaikkiin kolmeen eri mahdollisuuteen.