Bonjour je révise actuellement pour passer la certification sun java programmer et je bute sur cette question.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.