Hallo Javagemeinde !
Ich habe mal eine Frage zur Vererbung in Java. Ich versuche folgendes Beispiel zu verstehen, ich hoffe, dass meine Erklärung zu diesem Szenario korrekt ist. Vielleicht kann das mal jemand von euch prüfen und mir bitte ein Feedback geben!?
Ich habe die vier folgenden Javaklassen:
Die Klasse C besitzt eine Methode f(), die wiederum die Methode g() aufrufen kann.
Die Frage: Warum ist es Möglich, der Methode f() ein Obejct der Klasse A und der Klasse B als formalen Parameter beim Aufruf mitzugeben und welche Methode g() wird letztendlich ausgeführt.
Meine Vermutung: Das liegt nur daran, weil die Klasse B die Klasse A erweitert, daher ist eine Referenz der Klasse B zuweisungskompatibel zu einem formalen Parameter der Klasse A. Welche Methode g() ausgeführt wird, ist abhängig von der übergebenden Referenz.
Ist meine Vermutung so korrekt? Ich möchte endlich richtig die Objektorientierung erlernen, ich habe solche Beispiele schon in einigen Fachbüchern gesehen. Daher denke ich, dass solches Wissen für ein grundlegendes Verständnis für die Objektorientierung darstellt.
MFG und danke !!
Ich habe mal eine Frage zur Vererbung in Java. Ich versuche folgendes Beispiel zu verstehen, ich hoffe, dass meine Erklärung zu diesem Szenario korrekt ist. Vielleicht kann das mal jemand von euch prüfen und mir bitte ein Feedback geben!?
Ich habe die vier folgenden Javaklassen:
Java:
public class A{
public void g(){
}
}
Java:
public class B extends A{
public void g(){
//Die Methode g() aus A soll von der Klasse B überschrieben werden
}
}
Java:
public class C{
public void f(A object){
g();
}
}
Java:
public class Appl{
public static void main(String[] args){
C obj = new C();
obj.f(a); //Übergabe mit einem Objekt der Klasse A
obj.f(b); //Übergabe mit einem Objekt der Klasse B
}
Die Klasse C besitzt eine Methode f(), die wiederum die Methode g() aufrufen kann.
Die Frage: Warum ist es Möglich, der Methode f() ein Obejct der Klasse A und der Klasse B als formalen Parameter beim Aufruf mitzugeben und welche Methode g() wird letztendlich ausgeführt.
Meine Vermutung: Das liegt nur daran, weil die Klasse B die Klasse A erweitert, daher ist eine Referenz der Klasse B zuweisungskompatibel zu einem formalen Parameter der Klasse A. Welche Methode g() ausgeführt wird, ist abhängig von der übergebenden Referenz.
Ist meine Vermutung so korrekt? Ich möchte endlich richtig die Objektorientierung erlernen, ich habe solche Beispiele schon in einigen Fachbüchern gesehen. Daher denke ich, dass solches Wissen für ein grundlegendes Verständnis für die Objektorientierung darstellt.
MFG und danke !!
Zuletzt bearbeitet: