Héritage / Covariance / Java 5
Bonjour je révise actuellement pour passer la certification sun java programmer et je bute sur cette question.
Code:
1 2 3 4 5 6 7 8 9 10 11
| class Programmer {
Programmer debug() {return this;}
}
class SCJP extends Programmer {
Object debug() { return this;}
} |
Pouvez vous m'expliquez pourquoi cela ne compile pas alors que SCJP étend bien Programmer qui étend "implicitement" Object. Puisque graçe à la covariance ce code compile:
Code:
1 2 3 4 5 6 7 8 9 10 11
| class Programmer {
Programmer debug() {return this;}
}
class SCJP extends Programmer {
SCJP Object debug() { return this;}
} |
Merci de votre aide.