Servus,
könnte mir jemand bitte erklären, warum im unteren Code bei "fahrzeug1.fahre(kind, erwachsener)" die Ausgabe "Person und Erwachsener in Auto" erscheint. Es gibt doch in der Klasse Auto die passende Methode fahre(Kind kind, Erwachsener erwachsener).
Danke
könnte mir jemand bitte erklären, warum im unteren Code bei "fahrzeug1.fahre(kind, erwachsener)" die Ausgabe "Person und Erwachsener in Auto" erscheint. Es gibt doch in der Klasse Auto die passende Methode fahre(Kind kind, Erwachsener erwachsener).
Danke
Java:
class Person {}
class Erwachsener extends Person {}
class Kind extends Person {}
class Fahrzeug {
public void fahre(Person person, Person person2) {
System.out.println("Person und Person in Fahrzeug");
}
public void fahre(Person person, Erwachsener erwachsener) {
System.out.println("Person und Erwachsener in Fahrzeug");
}
}
class Auto extends Fahrzeug {
public void fahre(Person person, Erwachsener erwachsener) {
System.out.println("Person und Erwachsener in Auto");
}
public void fahre(Kind Kind, Erwachsener erwachsener) {
System.out.println("Kind und Erwachsener in Auto");
}
}
class Boot extends Fahrzeug {
public void fahre(Person person, Erwachsener erwachsener) {
System.out.println("Person und Erwachsener in Boot");
}
public void fahre(Kind Kind, Erwachsener erwachsener) {
System.out.println("Kind und Erwachsener in Boot");
}
}
class Gummiboot extends Boot {
public void fahre(Person person, Erwachsener erwachsener) {
System.out.println("Person und Erwachsener in Gummiboot");
}
}
public class Main {
public static void main(String[] args) {
Person person = new Person();
Erwachsener erwachsener = new Erwachsener();
Kind kind = new Kind();
Fahrzeug fahrzeug1 = new Auto();
Fahrzeug fahrzeug2 = new Gummiboot();
Boot boot = new Gummiboot();
fahrzeug1.fahre(kind, erwachsener);
fahrzeug1.fahre(person, erwachsener);
fahrzeug2.fahre(kind, kind);
boot.fahre(erwachsener, erwachsener);
boot.fahre(kind, erwachsener);
}
}