Ich beschäftige mich gerade mit abstrakten Klassen und habe ein Problem beim Aufrufen dieser.
Das ist meine abstrakte Klasse:
Und hier meine implementierende Klasse
Und mein Aufruf in der Main:
1. Was genau passiert in der zweiten Zeile der Main? Erstelle ich ein Objekt der implementierenden Klasse und weise ihm der Variable b vom Typ der abstrakten Klasse zu? Kann mir jemand den Unterschied zwischen Zeile 1 und 2 der Main erklären?
2. Was ist der unterschied zwischen den Methodenaufrufen mit a.methode(); und b.methode(); ? Es kommen alle vier Konsolenausgaben aus der implementierenden Klasse, aber b.abstractMethod(); scheint erst in die abstrakte Klasse zu gehen?
3. Wie ruft man die konkrete Methode der Abstrakten Klasse auf?
Das ist meine abstrakte Klasse:
Java:
public abstract class AbstractClass {
public abstract void abstractMethod();
public void implementedMethod() {
System.out.println("-> konkrete Methode aus der abstrakten Klasse");
}
}
Java:
public class ImplementingClass extends AbstractClass {
public void abstractMethod() {
System.out.println("-> abstrakte Methode konkretisiert");
}
public void implementedMethod() {
System.out.println("-> Ich wurde überschrieben!");
}
}
Und mein Aufruf in der Main:
Java:
ImplementingClass a = new ImplementingClass();
AbstractClass b = new ImplementingClass();
a.abstractMethod();
a.implementedMethod();
b.abstractMethod();
b.implementedMethod();
1. Was genau passiert in der zweiten Zeile der Main? Erstelle ich ein Objekt der implementierenden Klasse und weise ihm der Variable b vom Typ der abstrakten Klasse zu? Kann mir jemand den Unterschied zwischen Zeile 1 und 2 der Main erklären?
2. Was ist der unterschied zwischen den Methodenaufrufen mit a.methode(); und b.methode(); ? Es kommen alle vier Konsolenausgaben aus der implementierenden Klasse, aber b.abstractMethod(); scheint erst in die abstrakte Klasse zu gehen?
3. Wie ruft man die konkrete Methode der Abstrakten Klasse auf?