J'apprends sur le remplacement au moment et je lis qu'une méthode privée ne peut pas être surchargée hereJava remplaçant privé vs publique
Je lis aussi que le niveau d'accès ne peut être plus restrictive que le niveau d'accès aux superclasses here
Donc, ce que je veux savoir, est-ce que cela signifie que vous pouvez seulement remplacer les méthodes publiques? Et votre nouvelle méthode doit aussi être publique?
Scénario
class A {
private void method1(){
....
}
}
class B extends A {
private void method1(){
....
}
}
Ai-je raison de dire que ce sera une erreur de compilation parce que les méthodes privées ne peuvent pas être remplacées?
Scénario 2
class A {
public void method1(){
....
}
}
class B extends A {
private void method1(){
....
}
}
Ai-je raison en disant cela produira également une erreur de compilation parce que vous le niveau d'accès des method1()
dans B
est plus restrictive que method1()
dans A
Scenario3
class A {
public void method1(){
....
}
}
class B extends A {
public void method1(){
....
}
}
Question finale, est-ce le seul scénario qui peut être dépassé? en? (les deux niveaux d'accès sont publics)
protégé aussi ... et ceux-ci auront la même visibilité –
Pourquoi ne pas les tester avant de poster? – shmosel