Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parSylvestre Jacquet Modifié depuis plus de 10 années
1
1 Quelques précisions sur l'héritage
2
2 Signification de super.f() appel à la méthode f() masquée super : désigne l'objet appelant comme s'il était de la super-classe directe de la classe qui masque f() (ici B) D d = new D(); d.g(); d.f(); A B C D f(){...} f(){super.f()...... } g(){f()....} d.f() -> f() de C f() de A d.g() -> g() de B f() de C
3
3 Niveaux de protection private (privé): accessible seulement par les méthodes de cette classe rien (package): accessible seulement par les méthodes des classes du même package protected (protégé): accessible seulement par les méthodes des classes du même package et des classes dérivées public (publique): accessible sans restriction Convention : pour l'instant les attributs sont privés (sauf éventuellement des constantes)
4
4 Rédéfinition de méthode Une redéfinition se fait sans changer - ni la liste de paramètres - ni le type de retour - par contre la protection peut être affaiblie (package -> protégée -> publique)
5
5 Peut-on "redéfinir" une méthode privée? En fait c'est comme si B définissait une nouvelle méthode A B private f() public f() super.f() impossible car f() privée en A { super.f()....}
6
6 Ne pas confondre surcharge (overloading) et redéfinition (overriding) A B public void f(int a) public void f(String b) Une instance de B possède 2 méthodes f surcharge B b = new B(); b.f(5); b.f("5"); //f de A // f de B
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.