Tehtävä 2 Tehtävästä on saanut korkeintaan 16 pistettä, joista jokaisesta tehtävän alikohdasta on voinut saada korkeintaan 4. Maksimipisteisiin alikohdista on täytynyt käydä ilmi seuraavat asiat, eikä niissä ole muuten saanut olla asiavirheitä: a) Yli- ja aliluokka: - aliluokka perii yliluokan ominaisuudet ja toiminnot ja täydentää niitä erityisemmillä; aliluokka erikoistaa yliluokkaa Mitkä tahansa kolme seuraavista: - esimerkki yli- ja aliluokasta - yli- ja aliluokkien puumainen hierarkia - periyttämisen käyttö aiemmin ohjelmoitujen välineiden uudelleenkäyttönä - periyttämisen käyttö mallintamisena - konstruktorit eivät periydy - yliluokka ei tiedä aliluokistaan b) Abstrakti luokka: - luokkaa kutsutaan abstraktiksi, jos se ei toteuta kaikkia metodejaan - halutaan laatia yleiskäyttöinen luokka, jonka jotkin metodit vaaditaan ohjelmoitavaksi sovelluskohtaisesti aliluokassa - esimerkki abstraktista luokasta ja/tai sen käytöstä, tai muuten konkreettinen selostus abstraktin luokan muodosta - abstraktista luokasta ei voi luoda ilmentymiä c) Rajapintaluokka: Neljä seuraavista: - luokka toteuttaa rajapintaluokan, kun se toteuttaa kaikki rajapintaluokan luettelemat metodit; implements on lupaus siitä, että metodit toteutetaan - keino kerätä yhteen luokkia, joilla on joitain samankaltaiseen tarkoitukseen laadittuja samaotsikkoisia metodeja; toisin sanoen rajapintaluokka toimii tyyppinä - esimerkki rajapintaluokasta ja/tai sen käytöstä - rajapintaluokka ei itse toteuta metodejaan - Javan tapa toteuttaa moniperintä; luokka voi toteuttaa useita rajapintaluokkia d) Polymorfismi: - aliluokka voi korvata ja peittää yliluokan metodeja - esimerkki käytöstä - metodin valinta liittyy olion, ei muuttujan, tyyppiin