Stop show with sound -- Keyboard shortcut: 'x'  Next slide in show -- Keyboard shortcut: 'n'  32 secondsNedarvning - slide 32 : 41

Eksemplet uden dynamisk binding 

Alternativet til at anvende dynamisk binding er eksplicit diskrimination af objekter baseret på deres type

Det er generelt et sygdomstegn hvis man anvender instanceof operatoren i Java (for meget)

 

class Bank4 {
 
   public static void main( String[] args ) {

     Konto[] konti = new Konto[5];

     konti[0] = new Konto("Peter");
     konti[1] = new CheckKonto("Jens");
     konti[2] = new CheckKonto("Børge");
     konti[3] = new CheckKonto("Carsten");
     konti[4] = new Konto("Kristen");

     konti[0].hæv(50);                      // Peter
     konti[1].indsæt(100.0);                // Jens
     konti[2].indsæt(200.0);                // Børge
     konti[3].indsæt(300.0);                // Carsten
     ((CheckKonto)konti[3]).hævCheck(500);  // Carsten
     konti[4].indsæt(400.0);                // Kristen

     for(int i = 0; i < 5; i = i + 1){
       if (konti[i] instanceof CheckKonto)
          ((CheckKonto)konti[i]).tilskrivRenteCheckKonto();
       else if (konti[i] instanceof Konto)
          konti[i].tilskrivRenteKonto();
     }

     for(int i = 0; i < 5; i = i + 1){
        System.out.println(konti[i]);
     }

   }
} // end Bank4
 

Bank4.javaSuperklassen Konto med operationen tilskrivRenteKonto
 

Bank4.javaSubklassen CheckKonto med operationen tilskrivRenteCheckKonto