class Oppgave1{ public static void main(String[] arg){ /* Klasser: Person Voksen arver fra Person // Barn arver fra Person // Student arver fra Voksen */ // Oppretter ett objekt av hver klasse Person person = new Person(); Voksen voksen = new Voksen(); // Barn barn = new Barn(); // Student student = new Student(); // Hva skjer? Voksen voksenpeker = voksen; Person personpeker = voksenpeker; // Dette g?r fint. Kompilatoren klarer ? caste voksenpekeren til en personpeker p? egenh?nd // Nullstiller pekerne voksenpeker = null; personpeker = null; // Hva skjer? // personpeker = person; // voksenpeker = personpeker; // Dette g?r ikke fordi klassen Voksen arver fra Person, og pekere kan ikke peke "oppover" i klassehierarkiet // Nullstiller pekerne personpeker = null; voksenpeker = null; // Hva skjer? // personpeker = voksen; // voksenpeker = personpeker; // Dette g?r ikke uten hjelp. Kompilatoren klager og vi m? caste // personpekeren til en voksenpeker f?r vi kan lagre den i variabelen voksenpeker // Her demonstrerte vi b?de casting: // voksenpeker = (Voksen) personpeker; // og bruk av instanceof for ? sjekke hva slags type objekt som er lagret i en peker personpeker = voksen; if (personpeker instanceof Voksen){ voksenpeker = (Voksen) personpeker; } else (personpeker instanceof Barn){ // her kunne vi lagret en referanse til objektet i en barnepeker for eksempel } } }