bonsoir à tous,
voici mon code:
la classe A
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
class A
{int i=1;
int f(){return i;}
static char g(){return 'A';}}
la classe B
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
class B extends A
{int i=2;
int f() {return -i;}
static char g(){return 'B';}}
le main:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
public class Exe2{
public static void main (String args[])
{B b=new B();
System.out.println(b.i);
System.out.println(b.f());
System.out.println(b.g());
System.out.println(B.g());
 
A a=b;
System.out.println(a.i);
System.out.println(a.f());
System.out.println(a.g());
System.out.println(A.g());}}
les resulats sont:
b.i=2
b.f()=-2
b.g()=B
B.g()=B
a.i=1
a.f()=-2
a.g()=A
A.g()=A
en ce qui concerne les résultats de b c'est ok, mais dés qu'il s'agit de A a=b, c'est la où je comprend pas trop les résultats,j'avais prévu un truc du genre:
a.i=2
a.f()=-2
a.g()=B
A.g()=A
pouvez-vous m'expliquer??
merci pr votre aide