Klass = tüüp, definitsioon (programmikood). Olemas ka siis kui programm parasjagu ei tööta. Objekt = klassist tehtud konkreetne eksemplar programmi töö ajal (new Type..) 12. Kirjutage üks polümorfse koodi näide (polümorfism == pärimisest tulenev polümorfism). Testis peate hindama, kas mingi kood on polümorfne või mitte. Üldiselt kolme tüüpi polümorfismi: Ülelaadimisest tulenev (ühe nimega meetod, erinevad väljakutsed . Geneeriline polümorfism (geneeriliste tüüpide abil) Pärimisest tulenev polümorfism (subtyping) Objektorienteeritud programmeerimises peame polümorfismi all silmas eelkõige pärimisest tulenevat polümorfset käitumist 13. Mis vahe on meetodi override (ülekirjutamine) ja overload'il (ülelaadimine)? Override: Alamklass defineerib sama nime ja samade argumentidega meetodi. Tagastustüüp peab olema sama või originaaltüübi alamtüüp. Overload: Mitu sama nime, kuid erinevate argumentidega meetodit
Ehk siis võimalus kasutatavaid andmetüüpe määrata pärast kasutatava klassi koodi enese valmiskirjutamist. Sellega kaasneb vähemasti kaks head omadust: * Kui andmetüüp on täpselt määratud, siis on karta vähem valest omistamisest tingitud vigu. * Kompilaatoril on võimalik koodi optimeerida konkreetse andmetüübi omadustest lähtudes ning programmi töö käigus ei pea kulutama aega tegeliku andmetüübi kontrollimisele. Võimalust kasutatakse tihti geneeriliste andmekollektsioonide juures. Kui muidu oli hoiustatud andmete kohta teada ainult, et need on klassi Object järglased (ehk siis nagu polnudki tüübi kohta suurt midagi teada), siis geneerilise Listi puhul saab määrata näiteks, et loetelus esinevad elemendid on täisarvud. Ning selle põhjal on edaspidises kasutuses teada, et vastavast loetelust välja võetavad andmed on ka sama tüüpi. Nagu järgnevast näitest näha, siis
Ehk siis võimalus kasutatavaid andmetüüpe määrata pärast kasutatava klassi koodi enese valmiskirjutamist. Sellega kaasneb vähemasti kaks head omadust: * Kui andmetüüp on täpselt määratud, siis on karta vähem valest omistamisest tingitud vigu. * Kompilaatoril on võimalik koodi optimeerida konkreetse andmetüübi omadustest lähtudes ning programmi töö käigus ei pea kulutama aega tegeliku andmetüübi kontrollimisele. Võimalust kasutatakse tihti geneeriliste andmekollektsioonide juures. Kui muidu oli hoiustatud andmete kohta teada ainult, et need on klassi Object järglased (ehk siis nagu polnudki tüübi kohta suurt midagi teada), siis geneerilise Listi puhul saab määrata näiteks, et loetelus esinevad elemendid on täisarvud. Ning selle põhjal on edaspidises kasutuses teada, et vastavast loetelust välja võetavad andmed on ka sama tüüpi. Nagu järgnevast näitest näha, siis ka loetelu läbimiseks mõeldud