Veröffentlicht 16. April 200322 j Hi, ich hab nun wirklich schon ein paar sachen ueber das thema super gelesen, bzw. erklaeren lassen, ich habs immernoch net kapiert. fuer was ist super() da ??? was genau macht das ?? danke.
16. April 200322 j Hi, man kann auch Methoden, die bereits in der Oberklasse definiert sind, in der Unterklasse neu definieren und damit die alte Bedeutung für Objekte des neuen Typs überschreiben (override). Dabei braucht man eventuell nur die Teile neu zu schreiben, die zur entsprechenden Methode der Oberklasse hinzukommen, und kann für den gleichbleibenden Teil die Methode der Oberklasse mit super.name() aufrufen. Wenn eine Methode in der Oberklasse als final deklariert ist, kann sie von Unterklassen nicht überschrieben werden. Konstruktoren werden nicht automatisch von der Oberklasse übernommen sondern müssen neu definiert werden, wenn man mehr als den Default-Konstruktor mit der leeren Parameterliste braucht. Allerdings braucht man in diesen Konstruktoren nur diejenigen Aktionen zu definieren, die gegenüber der Oberklasse neu sind, und kann vorher - als erstes Statement - mit super(); oder super(parameterliste); den Konstruktor der Oberklasse aufrufen. Wenn man das nicht tut, wird vom Compiler automatisch der Aufruf des Default-Konstruktors super(); als erstes Statement hinzugefügt. Quelle: http://www.boku.ac.at/javaeinf/jein1.html#inheritance Dementsprechend ist super(); der parameterlose Konstruktor der Oberklasse der so von der Unterklasse aufgerufen werden kann. Gruß Jaraz
23. April 200322 j Original geschrieben von Jaraz Dementsprechend ist super(); der parameterlose Konstruktor der Oberklasse der so von der Unterklasse aufgerufen werden kann. Gruß Jaraz Stimmt! aber es ist sinnlos super(); in den Klassenkonstruktor der Unterklasse reinzuschreiben da (wenn kein anderer Konstruktor angegeben ist) sowieso immer der Standartkonstruktor der Oberklasse aufgerufen wird.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.