/*
Datei............: Aufg0702.java
Projekt..........: Einführung in die Java-Programmierung
Erstellt.........: 02.11.97, Guido Krüger
Geändert.........: --
Aufgabe..........: Musterlösung zu Aufgabe 07.02
Kommentare.......:

Die beiden Begriffe Polymorphismus und Late Binding werden im 
Kurstext leider nicht mit der erforderlichen Deutlichkeit erwähnt.
Beide sind wichtig und ihr Verständnis zum Entwurf objektorientierter
System unerläßlich. Kapitel 7 erläutert die grundlegenden Konzepte
anhand der Begriffe "dynamische Methodensuche" und "dynamisches 
Binden".

Die direkte Übersetzung von Polymorphismus ist "Vieltypigkeit".
Gemeint ist die Fähigkeit von objektorientierten Sprachen, einer 
Variablen eines Objekttyps T nicht nur Objekte der Klasse T,
sondern auch aller aus T abgeleiteter Klassen zuzuweisen. In
Java handelt es sich dabei um eine erweiternde Konvertierung,
die vom Compiler automatisch vorgenommen wird und damit keine
weiteren Aktionen des Entwicklers erforderlich macht. 

Polymorphismus bildet die Eigenschaft ab, daß ein Objekt der Klasse B,
die aus A abgeleitet wurde, nicht nur die speziellen Eigenschaften
von B besitzt, sondern auch alle Eigenschaften von A. Ist - wie
im Buch beschrieben - ein Cabrio also ein Auto, so kann eine
Variable des Typs Auto nicht nur Autos, sondern auch Cabrios
aufnehmen, denn, wie gesagt, ein Cabrio ist ja auch ein Auto. 
Polymorphismus wird durch die Technik des Late Bindings realisiert, 
bei der Methodenaufrufe einer Klasse, aus der weitere Klassen 
abgeleitet wurden, nicht bereits zum Compile-Zeitpunkt evaluiert,
sondern erst zur Laufzeit, nach Feststellung der tatsächlichen
Klasse, ausgewertet werden.

Mit Polymorphismus ist es möglich, in der Basisklasse
Eigenschaften festzulegen, die erst in abgeleiteten Klassen
konkretisiert werden. In diesem Fall spricht man von 
abstrakten Klassen bzw. abstrakten Methoden in der 
Basisklasse. Aufgabe 14 konkretisiert diese Vorgehensweise.
*/

