| class Bank3 {
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: -50 (Konto)
konti[1].indsæt(100.0); // Jens: 100 (CheckKonto)
konti[2].indsæt(200.0); // Børge: 200 (CheckKonto)
konti[3].indsæt(300.0); // Carsten
((CheckKonto)konti[3]).hævCheck(500); // Carsten: -300 (CheckKonto)
konti[4].indsæt(400.0); // Kristen: 400 (Konto)
for(int i = 0; i < 5; i = i + 1){
konti[i].tilskrivRente();
}
for(int i = 0; i < 5; i = i + 1){
System.out.println(konti[i]);
}
}
} // end Bank3 |
|
| | Et hovedprogram som illustrerer dynamisk binding.
Vi laver 5 konti, som lagres i et array. Vi udnytter
polymorfien derved at arrayet kan referere både instanser af Konto og instanser af CheckKonto.
Læg særligt mærke til rentetilskrivningen, som foregår i en for-løkke. Carsten's checkkonto
får tilskrevet ubehagelig ågerrente, idet der er negativ saldo på kontoen. Den dynamiske binding
søger for, at den 'rigtige' rentetilskrivningsoperation bliver kaldt på de enkelte konti.
Udskrivningen af kontiene via toString metoden illustrerer også den dynamiske binding. Kør
selv programmet, og verificer at der er tale om dynamisk binding af rentetilskrivningsoperationen.
|