ED n°4
Quel est le résultat de l'exécution de ce programme (C2.java)? Le constructeur sans paramètre de
la classe Object est-il invoqué lorsque new B(5) est exécuté :
public class C2{
public static void main(String[] args){
B b = new B(5);
}
}
class A{
public A(){
System.out.println("Je suis dans A);
}
}
public class B extends A{
public B(int x){
System.out.println("Je suis dans B");
}
}
Quels sont les problèmes identifiés à la compilation dans ce fichier source (C3.java):
public class C3{
public static void main(String[] args){
B b = new B();
}
}
class A{
public A(int x){
System.out.println("Je vaux: "+x);
}
}
public class B extends A{
public B(){
System.out.println("Je suis dans B");
}
}
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();
}
}
2