ED n°4 corrigé
La classe B peut-elle être compilée ? Quelle que soit la réponse, déterminer le modificateur le plus
adapté aux membres i et m de la classe A ?
// fichier A.java
package p1;
public class A{
int i;
void m(){System.out.println("i= "+i);}
}
// fichier B.java
package p1;
public class B extends A{
public void main(String[] args){
System.out.println("i= "+i);
m();
}
}
Solution
- oui car les classes A et B appartenant au même package, les membres sans
modificateur leur sont accessibles
- protected
Les assertions suivantes sont elles vraie ou fausse ?
- un membre protected (donnée ou méthode) peut-il être accédé par n'importe quelle classe
du même package ?
- un membre protected (donnée ou méthode) peut-il être accédé par n'importe quelle classe
de différents packages ?
- un membre protected (donnée ou méthode) peut-il être accédé par ses sous-classes de
différents packages ?
- une classe final peut-elle être instanciée ?
- une classe final peut-elle être étendue (dérivée) ?
- une méthode final peut-elle être surchargée ?
Solution
- non
- non
- oui
- oui
- non
- oui
Déterminer 2 façons de compléter le programme suivant pour que le constructeur de la classe B
initialise les variables d'instance x et y :
public class A{
protected int x,y;
public A( int x,int y ){
this.x = x;this.y = y;
}
}
public class B extends A{
private int r;
public B( int x,int y,int r ){
3