Bonsoir à tous, j'espère que vous allez bien !

je me prépare pour un examen en java et je n'ai malheureusement pas compris un truc, et c'est pour cette raison que je vous écris cette question à fin de trouver un explication.

ma question est la suivante :

Considérons cet exemple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
class A
{ public void f (int n) { ..... }
}
class B extends A
{ private void f (int n) { ..... } // tentative de redéfinition de f de A
}
Il est rejeté par le compilateur, tandis que celle ci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
class A
{ private void f (int n) { ..... }
}
class B extends A
{ public void f (int n) { ..... } // redéfinition de f avec extension
}

le livre dont j'ai trouvé cet exemple explique ceci par le fait que : la redéfinition d’une méthode ne doit pas diminuer les droits d’accès à cette méthode.


qui peut m'expliquer la différence entre les deux ?