class SuperK { void skrivMelding() { System.out.println("Melding fra super!"); } } class SubK extends SuperK { int id = 0; @Override void skrivMelding() { System.out.println("Melding fra sub!"); } void unikMelding() { System.out.println("Hemmelig kode fra sub!"); } } // Enhetsteste, modulasiere testen? public class Casting { public static void main(String[] args) { // N?r blir instanceof false? // Superklasse SuperK superObj = new SuperK(); if (superObj instanceof SuperK) { // * 1 N?r blir instanceof false? System.out.println("Objektet er en instans av SuperK"); } if (superObj instanceof SubK) { // * 2 N?r blir instanceof false? System.out.println("Objektet er en instans av SubK"); } // Implisit casting til subklasse SuperK obj = new SubK(); obj.skrivMelding(); if (obj instanceof SuperK) { // * 3 N?r blir instanceof false? System.out.println("Objektet er en instans av SuperK"); } if (obj instanceof SubK) { // * 4 N?r blir instanceof false? System.out.println("Objektet er en instans av SubK TEST"); obj.skrivMelding(); // obj.unikMelding(); } // Eksplisit casting til subklasse SubK castetPeker = (SubK) obj; castetPeker.skrivMelding(); // SuperK castetPeker = (SubK) obj; if ( castetPeker instanceof SuperK) { // * 5 N?r blir instanceof false? System.out.println("Objektet er en instans av SuperK"); } if ( castetPeker instanceof SubK) { // * 6 N?r blir instanceof false? System.out.println("Objektet er en instans av SubK"); System.out.println(castetPeker.id); } } }