CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Question sur Java

zxcvbnmasdfghjk
zxcvbnmasdfghjk
Niveau 7
28 mars 2010 à 12:57:14

Bonjour a tous. Je débute en Java et je me plante déjà. J'ai deux classes:

public class r1 {
public int num=0;
public r1(){ num++; System.out.println("hola1"); }
}

public class r2 extends r1 {
public int num2=0;
public r2(){ super.num=1; num2++; System.out.println("hola2"); }
}

Dans le main j'exécute l'pération suivante:

public static void main(String[] args) {
r2 caca = new r2();
}

Le problème c'est que le constructeur de r1 est appelé!!!! Pourquoi? J'ai définis un constructeur par défaut dans r2, je vois pas pourquoi le constructeur de r1 (classe mère) est appellé!?!?

Pouvez-vous éclairer mas lanterne? :merci: d'avance :-)

zxcvbnmasdfghjk
zxcvbnmasdfghjk
Niveau 7
28 mars 2010 à 13:01:20

PS: Je suis sous NetBeans :)

Pseudo supprimé
Pseudo supprimé 28 mars 2010 à 13:26:37

Si tu ne spécifies pas explicitement le constructeur de la classe parente à utiliser avec super, son constructeur par défaut est utilisé.

zxcvbnmasdfghjk
zxcvbnmasdfghjk
Niveau 7
28 mars 2010 à 13:35:50

Je vois :(

On ne peux pas ne pas appeler de constructeur?

:merci: beaucoup suikomeja00 :)

Pseudo supprimé
Pseudo supprimé 28 mars 2010 à 13:55:00

Ben l'héritage (publique) veut dire que les r2 sont aussi des r1. Donc quand tu construits un r2, r1 est lui-aussi construit à l'intérieur.

saleGauss
saleGauss
Niveau 9
28 mars 2010 à 15:16:58

La première instruction du constructeur de ta classe fille r2 contiendra par défaut "super();" qui a pour effet d'appeller le constructeur de la classe mère.

Avec le code que tu nous a donné, à l'execution, tu dois avoir :
(num = 1) // grace au constructeur r1()
Affichage de "hola1" // grace au constructeur r1()
(num = 1) // grace au constructeur r2()
(num2 = 1) // grace au constructeur r2()
Affichage de "hola2" // grace au constructeur r2()

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment