Benutzer-Werkzeuge

Webseiten-Werkzeuge


polymorphismus:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
polymorphismus:start [2023/03/09 16:11] Martin Pabstpolymorphismus:start [2023/03/09 16:50] (aktuell) – [2. Casten] Martin Pabst
Zeile 1: Zeile 1:
 ====== Polymorphismus ====== ====== Polymorphismus ======
 +===== 1. Definition =====
 <WRAP center round info 100%> <WRAP center round info 100%>
 Wir beginnen mit einem einfachen Beispiel, in dem wir zu einer Oberklasse (''Tier'') zwei Unterklassen (''Katze'', ''Hund'') bilden: Wir beginnen mit einem einfachen Beispiel, in dem wir zu einer Oberklasse (''Tier'') zwei Unterklassen (''Katze'', ''Hund'') bilden:
-{{ :polymorphismus:pasted:20230309-170853.png?400 }}+{{ :polymorphismus:pasted:20230309-171339.png?400 }}
  
 Einer Variablen vom Typ ''Tier'' können wir sowohl ''Hund''-Objekte als auch ''Katze''-Objekte zuordnen. In beiden Fällen können wir die Methode ''stellDichVor()'' der Klasse ''Tier'' aufrufen: Einer Variablen vom Typ ''Tier'' können wir sowohl ''Hund''-Objekte als auch ''Katze''-Objekte zuordnen. In beiden Fällen können wir die Methode ''stellDichVor()'' der Klasse ''Tier'' aufrufen:
Zeile 9: Zeile 10:
 t = new Katze("Snoopy"); t = new Katze("Snoopy");
 t.stellDichVor(); t.stellDichVor();
-t.schnurre(); // GEHT NICHT! 
  
 t = new Hund("Bello"); t = new Hund("Bello");
 t.stellDichVor(); t.stellDichVor();
-t.belle(); // GEHT NICHT! 
 </code> </code>
 +Die Variable ''t'' kann sowohl auf ein ''Hund''-Objekt zeigen als auch auf ein ''Katze''-Objekt. Diesen Sachverhalt nennt man **Polymorphismus**. Das Wort kommt aus dem Griechischen und bedeutet "Vielgestaltigkeit".
 </WRAP> </WRAP>
  
-Obwohl die Variable ''t'' zum Zeitpunkt des Aufrufes ''t.schnurre()'' auf ein ''Katze''-Objekt zeigt, akzeptiert der Compiler diesen Aufruf nicht, denn die Deklaration ''Tier t'' in der ersten Zeile sichert nur zu, dass ''t'' auf ein Objekt der Klasse ''Tier'' oder einer Unterklasse davon zeigt. 
  
 <HTML> <HTML>
  
-<div class="java-online" style="height: 70vh; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'polymorphismus1'}">+<div class="java-online" style="height: 50vh; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'polymorphismus1'}">
  
 <script type="text/plain" title="Test1.java"> <script type="text/plain" title="Test1.java">
Zeile 63: Zeile 62:
  
 </div> </div>
 +
  
 </HTML> </HTML>
 +
 +
  
polymorphismus/start.1678378308.txt.gz · Zuletzt geändert: 2023/03/09 16:11 von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki