- Häufige Fragen im Fachgespräch – Objektorientierung – Anwendungsentwickler-Podcast #2
- Häufige Fragen im Fachgespräch – Kapselung – Anwendungsentwickler-Podcast #6
- Häufige Fragen im Fachgespräch – Vererbung – Anwendungsentwickler-Podcast #8
- Häufige Fragen im Fachgespräch – Polymorphie – Anwendungsentwickler-Podcast #10
- Häufige Fragen im Fachgespräch – Programmierung (Teil 1) – Anwendungsentwickler-Podcast #12
- Häufige Fragen im Fachgespräch – Programmierung (Teil 2) – Anwendungsentwickler-Podcast #13
- Relationale Datenbanken – Häufige Fragen im Fachgespräch – Anwendungsentwickler-Podcast #17
- Normalisierung – Häufige Fragen im Fachgespräch – Anwendungsentwickler-Podcast #18
- SQL – Häufige Fragen im Fachgespräch – Anwendungsentwickler-Podcast #19
- Erläuterung der Gehaltsabrechnung – Häufige Fragen im Fachgespräch – Anwendungsentwickler-Podcast #46
- Zusammensetzung des Stundensatzes – Häufige Fragen im Fachgespräch – Anwendungsentwickler-Podcast #47
- Testverfahren für Software – Häufige Fragen im Fachgespräch – Anwendungsentwickler-Podcast #94
- Unit-Tests – Häufige Fragen im Fachgespräch – Anwendungsentwickler-Podcast #95
- Rückblick auf die Fachgespräche der Sommerprüfung 2022 (Fachinformatiker:in Anwendungsentwicklung) – IT-Berufe-Podcast #177
- Handelskalkulation, Skonto und Rabatt – Häufige Fragen im Fachgespräch – Anwendungsentwickler-Podcast #148
In der achten Episode meines Anwendungsentwickler-Podcasts setze ich meine Reihe der häufigsten Prüfungsfragen im Fachgespräch fort. Das Thema ist dieses Mal die zweite „Säule“ der Objektorientierung, die Vererbung.
Podcast: Play in new window | Download (Duration: 25:12 — 11.8MB)
Abonnieren: Apple Podcasts | Spotify | RSS
Beantwortung der Frage im Fachgespräch
- Klassen können Attribute und Methoden von anderen Klassen übernehmen, indem sie von ihnen erben.
- Die vererbende Klasse heißt Basisklasse (auch Eltern- oder Superklasse) und die erbende Klasse Subklasse (auch Kind- oder abgeleitete Klasse).
- Um von einer Klasse zu erben, schreibt man in Java
extends
und den Namen des Basisklasse hinter die Klassendefinition. In C# wird anstattextends
einfach der Doppelpunkt:
verwendet. - Alle Attribute und Methoden der Basisklasse können automatisch in der Subklasse verwendet werden, sofern sie für diese sichtbar sind. Der Sichtbarkeitsmodifizierer
protected
erlaubt der Klasse selbst und allen Subklassen den Zugriff auf die mit ihm ausgezeichneten Member. - Eine Klasse kann mit
abstract
als nicht instantiierbar gekennzeichnet werden. Dann können ihre Attribute und Methoden nur über Objekte ihrer Subklassen aufgerufen werden. - Auch eine Methode kann als
abstract
gekennzeichnet werden. Sie wird dann in der Basisklasse nicht implementiert und muss in den Subklassen implementiert werden. Sobald mind. eine Methode abstrakt ist, muss auch die gesamte Klasse abstrakt sein. - Methoden können in Subklassen überschrieben werden. Das bedeutet, dass in der Subklasse eine Methode mit derselben Signatur (Methodenname und Parameter) wie in der Basisklasse implementiert wird. Beim Aufruf der Methode an einem Objekt der Subklasse wird nun deren Implementierung verwendet anstatt der der Basisklasse.
- Java erlaubt standardmäßig das Überschreiben von Methoden, während C# es standardmäßig verbietet. In Java kann man Methoden mit
final
als nicht überschreibbar kennzeichnen und in C# mitvirtual
als überschreibbar. - Auch Klassen können als nicht überschreibbar gekennzeichnet werden, was bedeutet, dass man von ihnen nicht erben kann. In Java wird hierfür
final
verwendet und in C#sealed
. - Mit
super
kann innerhalb der Subklasse auf Member der Basisklasse zugegriffen werden. - In den meisten neueren Programmiersprachen ist es nur möglich, von einer einzigen Klasse zu erben, da die Mehrfachvererbung (die z.B. in C++ erlaubt ist) zu Problemen führen kann (z.B. dem Diamantenproblem).
- In Java erben alle Klassen automatisch von
Object
.
Weiterführende Diskussion
- Legt euch ein interessantes Beispiel (bitte nicht das alte Auto/Fahrzeug) für die Vererbung für die Prüfung zurecht.
- Was ist die Methodensignatur? (Methodenname und Reihenfolge und Typ der Parameter)
- Was ist der Unterschied zwischen dem Überladen und dem Überschreiben von Methoden? (Überschreiben: gleiche Signatur in Subklasse, Überladen: gleicher Name in derselben Klasse)
- Was passiert, wenn ich eine
private
Methode „überschreibe“? (sie wird in der Subklasse „maskiert„) - Design Pattern „Template Method“ (verwendet
final
undabstract
)
Tipps für die Entwicklerpraxis
- Viele Entwurfsmuster verwenden Vererbung.
- Vererbung nicht im Sinne der „ist-ein“-Beziehung verstehen, sondern zur reinen Wiederverwendung.
- Beim Einsatz von Vererbung immer das Liskov Substitution Principle einhalten. Gegenbeispiel: Ein Quadrat ist kein Rechteck.
- „Favor composition over inheritance.„
Literaturempfehlungen
- *
(direkt beim Rheinwerk-Verlag bestellen*) - Das passende Kapitel im OpenBook: 5.8 Vererbung – Rheinwerk Computing :: Java ist auch eine Insel
- *
- *
- *
- *
Links
- Permalink zu dieser Podcast-Episode
- RSS-Feed des Podcasts
- Anwendungsentwickler-Podcast #2: Häufige Fragen im Fachgespräch – Objektorientierung
- Anwendungsentwickler-Podcast #6: Häufige Fragen im Fachgespräch – Kapselung
- Rheinwerk Computing :: Java ist auch eine Insel – 5.8 Vererbung
- Can we override private method in Java – Example program | Java67
- The Liskov Substitution Principle
- Multiple inheritance: The diamond problem – Wikipedia, the free encyclopedia
- Software design pattern – Wikipedia, the free encyclopedia
- Template method pattern – Wikipedia, the free encyclopedia
Weitere Infos zum Fachgespräch
Du suchst noch mehr Tipps rund um das Fachgespräch? Dann schau doch mal in diese Artikel- und Podcast-Kategorie: Alle Artikel rund um das Fachgespräch.
Kennst du schon meine Hörbücher zur Vorbereitung auf das Fachgespräch? Unter dasperfektefachgespraech.de kannst du sie herunterladen. In insg. über 10 Stunden gehe ich über 200 Fragen im Detail durch und gebe Tipps für die Beantwortung.
Und wenn du dich für meinen Newsletter einträgst, bekommst du immer direkt alle Neuigkeiten von dieser Seite in dein Postfach geliefert.
Jetzt anmelden!
Neueste Kommentare