hallo aller seits,
Ich habe ein paar Anfänger Fragen : ) Ich hoffe das ihr mir weiter helfen könnt:
Also ich habe zwei Klassen Student und Person, Student erbt von Person. In die beiden klassen befindet sich die gleiche Methode jedoch die Eingabeparameter sind nicht gleich. Und ich habe einer Klasse Book die von Document erbt! so:
Klasse Person:
Klasse Student:
jetzt kommt meiner Frage:
Ich habe 2 Statements:
Document d3 = p.goCrazy2(aBook);
und
d3 = ((Student)p).goCrazy2(aBook)
Ich verstehe nicht warum in der erste Zeile die Methode aus der Klasse Person aufgerufen wird und in der 2 Zeile die Methode aus der Klasse Student? wird hier dynamisch gebunden??
Ich habe ein paar Anfänger Fragen : ) Ich hoffe das ihr mir weiter helfen könnt:
Also ich habe zwei Klassen Student und Person, Student erbt von Person. In die beiden klassen befindet sich die gleiche Methode jedoch die Eingabeparameter sind nicht gleich. Und ich habe einer Klasse Book die von Document erbt! so:
Klasse Person:
Java:
/**
* Covariant in the argument.
*/
public Document goCrazy2(Document document) {
System.out.println("[Person] Covariant in the argument: " +
document.toString());
return (new Document("Whatever"));
}
Klasse Student:
Java:
/**
* Covariant in the argument.
*/
public Document goCrazy2(Book book) {
System.out.println("[Student] Covariant in the argument: " +
book.toString());
book.setPages(100);
System.out.println(" The number of pages of the book: " +
book.getPages());
return (new Document("Whatever"));
}
jetzt kommt meiner Frage:
Ich habe 2 Statements:
Document d3 = p.goCrazy2(aBook);
und
d3 = ((Student)p).goCrazy2(aBook)
Ich verstehe nicht warum in der erste Zeile die Methode aus der Klasse Person aufgerufen wird und in der 2 Zeile die Methode aus der Klasse Student? wird hier dynamisch gebunden??