Bonsoir à toutes et à tous,

J'ai 2 classes A et B (avec B hérite de A) dont l'implémentation est la suivante:

A
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class A {
 
    private int id;
    private String nom;
    int num;
 
    public A() {
    }
 
    public A(int id, String nom) {
        this.id = id;
        this.nom = nom;
    }
 
 
}
B
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class B extends A{
    
    public int age;

    public B() {
        
    }
    
    public B(int id, String nom,int age){
        super(id,nom);
        this.age=age;
    }
    
    public int lire(){
        return this.num++;
    }
}
et voici la classe principal:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
public class AB {
    public static void main(String[] args) {
        A aa = new A();
        B bb = new B();
        System.out.println(bb.lire());
        System.out.println(aa.num);
    }
}
affichage

run:
0
0
BUILD SUCCESSFUL (total time: 0 seconds)
- Je sais que ça peut être un peu absurde, mais je voudrais, en fait, savoir pourquoi la valeur de la variable num de la classe B ne se modifie pas (elle ne s'incrémente pas!), puisqu'elle s'agit une variable d'instance.

- Est ce que c'est obligatoire de passer une variable, comme paramètre, pour la méthode lire()?

- Est ce que vous pouvez me référencer vers des tutos ou simples exemples pour comprendre le passage des paramètres en JAVA?

merci en avance