Bonjour.
J'ai une classe City :
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 
package com.OCR.classes1;
 
public class City {
 
    protected String name;
    protected String country;
    protected int inhabitants;
    protected static int nb = 0;
 
    public City() { nb++; }
 
    public City(String name, String country, int inhabitants) {
        setName(name);
        setCountry(country);
        setInhabitants(inhabitants);
        nb++;
    }
 
    public void presentation() {
        System.out.println("Nom : " + this.name + "\nPays : " + this.country + "\nHabitants : " + this.inhabitants
        + "\nNombre de villes : " + nb);
 
    }
 
    // Getters & Setters
 
    public String getName() { return this.name; }
 
    public String getCountry() { return this.country; }
 
    public int getInhabitants() { return this.inhabitants; }
 
    public void setName(String name) { this.name = name; }
 
    public void setCountry(String country) { this.country = country; }
 
    public void setInhabitants(int inhabitants) { this.inhabitants = inhabitants; }
}
Et une classe Capital qui hérite de City :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
package com.OCR.classes1;
 
public class Capital extends City {
 
    public Capital() {
        nb++;
    }
 
    public Capital(String name, String country, int inhabitants) {
 
    }
}
Dans mon main, lorsque je fais un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Capital lyon = new Capital();
J'ai ma variable de classe nb, qui vaut 2, je l'ai donc incrémenté 2 fois. Lorsque je fais
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Capital lyon = new Capital("Lyon", "France", 300_000);
J'ai ma variable de classe nb qui vaut 1, mais les autres attributs valent null et 0.

J'ai donc l'impression que si je ne fais pas appel explicitement à un constructeur dans ma classe fille, lors de l'instanciation de ma classe fille, j'aurai toujours un appel implicite à mon constructeur par défaut. Pourquoi ?
Merci à vous