Hallo Leute,
Ich sitz schon etwas an der Aufgabe und hoffe ihr könnte mir beim Fehler helfen.
Fehler: Cannot resolve Method(Polymorphie.Person)
Aufgabenstellung:
Implementieren Sie die beiden fehlenden Klassen Person und Akademiker, so dass sich die Klasse Gruss kompilieren lässt und beim Ausführen des Programms die obige Ausgabe erzeugt wird. Die Klasse Person speichert einen im Konstruktor übergebenen Vornamen und Nachnamen. Die Klasse Akademiker speichert neben Vorname und Nachname (Konstruktor mit zwei Parametern) zusätzlich unter Umständen noch einen Titel (Konstruktor mit drei Parametern). Attribute in den beiden Klassen sollen immer als private deklariert werden. Die Bildschirmausgabe soll nicht bereits im Konstruktor sondern in der Methode gruessen erfolgen (jeweils eine Zeile). Tipp: Definieren bzw. überschreiben Sie eine Hilfsmethode String getName(), die Sie bei der Implementierung der Methode gruessen dynamisch gebunden nutzen können. Die Methode getName soll dabei den vollständigen Namen einer Person liefern.
Mein Code:
Ausgabe:
Otto Mueller gruesst Karl Schmidt
Karl Schmidt gruesst Dr. Maria Meier
Dr. Maria Meier gruesst Otto Mueller
Ich sitz schon etwas an der Aufgabe und hoffe ihr könnte mir beim Fehler helfen.
Fehler: Cannot resolve Method(Polymorphie.Person)
Code:
public static void main(String[] args) {
Person otto = new Person("Otto", "Mueller");
Person karl = new Akademiker("Karl", "Schmidt");
Person maria = new Akademiker("Maria", "Meier", "Dr.");
otto.gruessen(karl);
karl.gruessen(maria);
maria.gruessen(otto);
}
}
Aufgabenstellung:
Implementieren Sie die beiden fehlenden Klassen Person und Akademiker, so dass sich die Klasse Gruss kompilieren lässt und beim Ausführen des Programms die obige Ausgabe erzeugt wird. Die Klasse Person speichert einen im Konstruktor übergebenen Vornamen und Nachnamen. Die Klasse Akademiker speichert neben Vorname und Nachname (Konstruktor mit zwei Parametern) zusätzlich unter Umständen noch einen Titel (Konstruktor mit drei Parametern). Attribute in den beiden Klassen sollen immer als private deklariert werden. Die Bildschirmausgabe soll nicht bereits im Konstruktor sondern in der Methode gruessen erfolgen (jeweils eine Zeile). Tipp: Definieren bzw. überschreiben Sie eine Hilfsmethode String getName(), die Sie bei der Implementierung der Methode gruessen dynamisch gebunden nutzen können. Die Methode getName soll dabei den vollständigen Namen einer Person liefern.
Mein Code:
Code:
class Person {
private String vorname;
private String nachname;
public Person (String v, String n) {
vorname = v;
nachname = n;
}
public String getName() {
return vorname + "" + nachname;
}
}
class Akademiker extends Person {
private String titel;
public Akademiker (String v, String n) {
super(v, n);
titel = null;
}
public Akademiker (String v, String n, String t) {
super(v, n);
titel = t;
}
@Override
public String getName() {
String gruessen = super.getName();
if (titel != null) {
gruessen = gruessen + " gruesst " + titel;
}
return gruessen;
}
}
Ausgabe:
Otto Mueller gruesst Karl Schmidt
Karl Schmidt gruesst Dr. Maria Meier
Dr. Maria Meier gruesst Otto Mueller