Hallo,
ich habe hier eine Aufgabe bzgl. Vererbung von Klassen & suche zu dieser Hilfe.
(Quellcode siehe unten).
So habe ich das Programm analysiert:
Ein Objekt der Klasse D wird instanziiert.
Die oberste Elternklasse der Klasse D ist die Klasse A, diese beinhaltet eine Methode mit einer Textausgabe, aber diese erfolgt nicht, da die Methode privat ist.
Die Kindklasse von Klasse A ist Klasse B. Hier bin ich der Meinung, dass die Methode dieser Klasse ausgeführt werden müsste und die Textausgabe: BBBB erscheinen sollte. Warum passiert das nicht?
Die Kindklasse von B ist C, hier passiert garnichts.
Jetzt gehts in die unterste Kindklasse: D. Hier wird DDDD ausgegeben.
Laut Lösung & in der Praxis gibt das Programm aber nur DDDD aus. Warum wird BBBB nicht ausgegeben?
Wo liege ich falsch? :bloed:
In der Lösung steht schlicht: "DDDD" wird ausgegeben, eine Begründung / Erklärung gibt es nicht.
Ich bedanke mich bei euch für eine Erleuchtung :idea:
Hier das Programm:
ich habe hier eine Aufgabe bzgl. Vererbung von Klassen & suche zu dieser Hilfe.
(Quellcode siehe unten).
So habe ich das Programm analysiert:
Ein Objekt der Klasse D wird instanziiert.
Die oberste Elternklasse der Klasse D ist die Klasse A, diese beinhaltet eine Methode mit einer Textausgabe, aber diese erfolgt nicht, da die Methode privat ist.
Die Kindklasse von Klasse A ist Klasse B. Hier bin ich der Meinung, dass die Methode dieser Klasse ausgeführt werden müsste und die Textausgabe: BBBB erscheinen sollte. Warum passiert das nicht?
Die Kindklasse von B ist C, hier passiert garnichts.
Jetzt gehts in die unterste Kindklasse: D. Hier wird DDDD ausgegeben.
Laut Lösung & in der Praxis gibt das Programm aber nur DDDD aus. Warum wird BBBB nicht ausgegeben?
Wo liege ich falsch? :bloed:
In der Lösung steht schlicht: "DDDD" wird ausgegeben, eine Begründung / Erklärung gibt es nicht.
Ich bedanke mich bei euch für eine Erleuchtung :idea:
Hier das Programm:
Java:
public class A {
private void tell() {
System.out.println("AAAA");
}
}
public class B extends A {
public void tell() {
System.out.println("BBBB");
}
}
public class C extends B {
}
public class D extends C {
private void tell() {
System.out.println("DDDD");
}
}
public class ABCD {
public static void main (String[] args) {
D d = new D();
d.tell();
}
}
Zuletzt bearbeitet: