suivant: Liaison dynamique, Occultation
monter: Extension de classes
précédent: Introduction
  Table des matières
Si la classe A est une extension de B
(class A extends B):
- les variables et méthodes de B sont des variables et méthodes
de A, mais elles peuvent ne pas être accessibles
(private),
- A peut ajouter de
nouvelles variables et nouvelles méthodes (nom ou signature
différentes),
- A peut occulter des variables de B
- A peut remplacer des méthodes de B.
Conséquences:
Si A est une extension de B:
- une variable de type (statique) B peut contenir une référence
sur un objet d'une classe A dérivée de B
(A est une sorte de B)
- par contre, une variable de type (statique) A ne peut
contenir une référence que sur un objet de d'une classe dérivée de
A. Il y a vérification à l'exécution.
transparent
Extension
class B{
public int i;
//..
};
class A extends B {
public int j;
//...
}
class essai{
//...
A a = new A(); // a référence sur un objet A
B b = new B(); // b référence sur un objet B
a=b; // NON! que signifie a.j ????
b=a; // ok ! un A est un B
a=(A) b; // ok b est en fait un A
}
suivant: Liaison dynamique, Occultation
monter: Extension de classes
précédent: Introduction
  Table des matières
Hugues FAUCONNIER
2003-01-09