Hi!
Trotz aller Beiträge die ich hier und in der Literatur zu diesem Thema gelesen habe, kapiere ich peinlicherweise folgendes immer noch nicht:
Angenommen es gibt die Superklasse "Artikel", aus der sich die Subklassen "Auto" und "Buch" ableiten, die ja unterschiedlichste Eigenschaften haben könnten.
Superklasse Artikel (Die Attribute, die alle gemeinsam haben):
-int Artikelnr
-double Preis
void printArtikelInfo (gibt Artikelnr und Preis aus)
Die Subklassen (zusätzlich spezifische Attribute):
Bsp Auto hat zusätzlich:
double PS
int Türenanzahl
void printArtikelInfo (ruft die super Methode auf und gibt danach noch PS und Türenanzahl aus)
---------------
Das ist mir alles klar, auch das Überschreiben der Methode, je nachdem eben, wer ruft. Was ich aber nicht behirne:
Wenn ich möchte, daß bspw nur die Klasse Auto eine spezielle Funktion beinhalten soll, also zum Beispiel double "berechneMotorbezogeneSteuer", was würde mir da die Implementierung/Verwendung eines Interfaces bringen bzw, warum sollte ich die Methode nicht als "normale" Methode der Subklasse Auto, also genauso wie void "printArtikelInfo" schreiben? Nur, damit eine eventuelle Subklasse von Auto, also z.B. Elektroauto o.ä., diese Methode nicht vererbt bekommt (ginge das nicht auch per Modifier??)? Und: Bei "Buch" würde ich diese ja in diesem Fall gar nicht programmieren.
In beiden Fällen müsste ich den Code innerhalb von Auto schreiben, nur, daß ich im Falle eines Interfaces das Interface benötige (zusätzlich Schreibarbeit, kein Code den ich anderswo verwenden kann, nur Methodenname und values, ..) und nach dem implement gezwungen bin, die Methode auch zu implementieren (oder eben abstract).
Verstehe überhaupt nicht, was der Sinn hinter einem Interface ist.
Kann mir das irgendjemand einfachst erklären?????
:noe:
Thnx for Help!!!!!!!!
Trotz aller Beiträge die ich hier und in der Literatur zu diesem Thema gelesen habe, kapiere ich peinlicherweise folgendes immer noch nicht:
Angenommen es gibt die Superklasse "Artikel", aus der sich die Subklassen "Auto" und "Buch" ableiten, die ja unterschiedlichste Eigenschaften haben könnten.
Superklasse Artikel (Die Attribute, die alle gemeinsam haben):
-int Artikelnr
-double Preis
void printArtikelInfo (gibt Artikelnr und Preis aus)
Die Subklassen (zusätzlich spezifische Attribute):
Bsp Auto hat zusätzlich:
double PS
int Türenanzahl
void printArtikelInfo (ruft die super Methode auf und gibt danach noch PS und Türenanzahl aus)
---------------
Das ist mir alles klar, auch das Überschreiben der Methode, je nachdem eben, wer ruft. Was ich aber nicht behirne:
Wenn ich möchte, daß bspw nur die Klasse Auto eine spezielle Funktion beinhalten soll, also zum Beispiel double "berechneMotorbezogeneSteuer", was würde mir da die Implementierung/Verwendung eines Interfaces bringen bzw, warum sollte ich die Methode nicht als "normale" Methode der Subklasse Auto, also genauso wie void "printArtikelInfo" schreiben? Nur, damit eine eventuelle Subklasse von Auto, also z.B. Elektroauto o.ä., diese Methode nicht vererbt bekommt (ginge das nicht auch per Modifier??)? Und: Bei "Buch" würde ich diese ja in diesem Fall gar nicht programmieren.
In beiden Fällen müsste ich den Code innerhalb von Auto schreiben, nur, daß ich im Falle eines Interfaces das Interface benötige (zusätzlich Schreibarbeit, kein Code den ich anderswo verwenden kann, nur Methodenname und values, ..) und nach dem implement gezwungen bin, die Methode auch zu implementieren (oder eben abstract).
Verstehe überhaupt nicht, was der Sinn hinter einem Interface ist.
Kann mir das irgendjemand einfachst erklären?????
:noe:
Thnx for Help!!!!!!!!