Servus, Einsteigerfrage von einem Informatikstudent. Ich lerne gerade für die Info 2 Klausur. Unter anderem lernen wir, dass sowas wie abstrakte Klassen, Methoden und Interfaces existieren. Abstrakte Klassen sind zb. Klassen, die selbst nicht instanziiert werden können sondern nur dafür dienen, entsprechende Methoden und Attribute an Unterklassen zu vererben.
Dabei gibt es auch sowas wie abstrakte Methoden. Diese erhält eine Klasse, wenn sie als Unterklasse von einer abstrakten Oberklasse erbt oder wenn sie ein Interface implementiert, welches abstrakte Methoden mitliefert.
Abstrakte Methoden sind dadurch definiert, dass sie nicht implementiert sind, also keinen Methodenrumpf haben. Die konkrete Implementierung findet dann erst in der erbenden Unterklasse bzw. der Klasse, die das Interface implementiert statt.
Aber welchen Nutzen hat denn dann die abstrakte Methode? Wenn ich den Methodenrumpf, also die Implementierung in der Unterklasse ohnehin anlegen muss, dann kann ich mir das Vererben doch auch direkt sparen? Wieso gebe ich in der Oberklasse eine Methode an, die dann erst in der Unterklasse implementiert wird?
Dabei gibt es auch sowas wie abstrakte Methoden. Diese erhält eine Klasse, wenn sie als Unterklasse von einer abstrakten Oberklasse erbt oder wenn sie ein Interface implementiert, welches abstrakte Methoden mitliefert.
Abstrakte Methoden sind dadurch definiert, dass sie nicht implementiert sind, also keinen Methodenrumpf haben. Die konkrete Implementierung findet dann erst in der erbenden Unterklasse bzw. der Klasse, die das Interface implementiert statt.
Aber welchen Nutzen hat denn dann die abstrakte Methode? Wenn ich den Methodenrumpf, also die Implementierung in der Unterklasse ohnehin anlegen muss, dann kann ich mir das Vererben doch auch direkt sparen? Wieso gebe ich in der Oberklasse eine Methode an, die dann erst in der Unterklasse implementiert wird?