Ich habe Probleme diese zwei Begriffe richtig anwenden zu können. Ich sehe noch nicht einmal den Unterschied darin. Was ich sehe ist das abstract mit extends im Zusammenhang liegt und analog interface mit implements.
Geht es bei beiden nicht lediglich einfach nur um Vererbung? d.h. das Attribute (Eigenschaften) und Methoden der Vaterklasse für ,,Subklassen" übernommen werden. Außerdem dienen beide Anweisungen um ,,Allgemeine" Attribute/Methoden in ihrem jeweiligen Code aufzustellen. Diese Attribute/methoden kann ich dann in ihren Subklassen aufrufen, so als ob sie in deren Klassen definiert wurden sind. Weiterhin kann man bei abstrakten Klassen und interfaces keine Objekte (Instanzen) erstellen. d.h. das einbinden in andere Subklassen funktioniert etwas anders als bei z.b.
class Beispielklasse {
void beispielmethode(int x){
// Anweisung }
}
class AndereKlasse {
Beispielklasse objektvonbeispielKlasse = new Beispielklasse; //Objekterzeugung (Instanzerzeugung)
objektvonbeispielKlasse.beispielmethode(233); // Dient dies nicht ebenfalls als ,,Schnittstelle" wie bei einem Interface?
Jetzt kann man das ganze ja nocheinmal über Schnittstellen (interface ->implements) bzw abstrakten Klassen (abstract -> extends) realisieren. Unterschied zu oben genannten Beispiel ist jedoch das oben keine Hierarchie vorhanden ist und bei Schnittstellen und abstrakten Klassen sind Hierarchien vorhanden (Vaterklasse - > Subklasse ->SubSubklasse -> usw).
Außerdem braucht man bei abstrakten Klassen und Schnittstellen keine Objekte zu erzeugen, bevor man auf die Attribute/Methoden ,,der anderen Seite" zugreifen kann. Das einbinden funktioniert einfach über extends bzw analog mit implements.
Kurz kann man sagen: Schnittstellen (Interface) und abstrakte Klassen(abstract) nutzen um allgemeine Attribute/Methoden aufzustellen die allgemein etwas beschreibt und dann später spezielle subklassen via implements und extends erstellen.
Kann mir bitte jemand sagen ob man das so sagen kann oder was ich mir noch merken muss ?
Lg
Geht es bei beiden nicht lediglich einfach nur um Vererbung? d.h. das Attribute (Eigenschaften) und Methoden der Vaterklasse für ,,Subklassen" übernommen werden. Außerdem dienen beide Anweisungen um ,,Allgemeine" Attribute/Methoden in ihrem jeweiligen Code aufzustellen. Diese Attribute/methoden kann ich dann in ihren Subklassen aufrufen, so als ob sie in deren Klassen definiert wurden sind. Weiterhin kann man bei abstrakten Klassen und interfaces keine Objekte (Instanzen) erstellen. d.h. das einbinden in andere Subklassen funktioniert etwas anders als bei z.b.
class Beispielklasse {
void beispielmethode(int x){
// Anweisung }
}
class AndereKlasse {
Beispielklasse objektvonbeispielKlasse = new Beispielklasse; //Objekterzeugung (Instanzerzeugung)
objektvonbeispielKlasse.beispielmethode(233); // Dient dies nicht ebenfalls als ,,Schnittstelle" wie bei einem Interface?
Jetzt kann man das ganze ja nocheinmal über Schnittstellen (interface ->implements) bzw abstrakten Klassen (abstract -> extends) realisieren. Unterschied zu oben genannten Beispiel ist jedoch das oben keine Hierarchie vorhanden ist und bei Schnittstellen und abstrakten Klassen sind Hierarchien vorhanden (Vaterklasse - > Subklasse ->SubSubklasse -> usw).
Außerdem braucht man bei abstrakten Klassen und Schnittstellen keine Objekte zu erzeugen, bevor man auf die Attribute/Methoden ,,der anderen Seite" zugreifen kann. Das einbinden funktioniert einfach über extends bzw analog mit implements.
Kurz kann man sagen: Schnittstellen (Interface) und abstrakte Klassen(abstract) nutzen um allgemeine Attribute/Methoden aufzustellen die allgemein etwas beschreibt und dann später spezielle subklassen via implements und extends erstellen.
Kann mir bitte jemand sagen ob man das so sagen kann oder was ich mir noch merken muss ?
Lg