Visualizzazione dei risultati da 1 a 7 su 7

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Lodin Visualizza il messaggio
    grazie in anticipo per la risposta veloce!
    Ho provato ad inserire un costruttore senza parametri in B che mi stampa la scritta "niente". Il risultato è che il programma stampa:

    esattamente in quest'ordine. La cosa è strana perchè essendoci il costruttore di B, non dovrebbe essere richiamato quello di A, sbaglio?
    La PRIMA istruzione di un costruttore è SEMPRE o una invocazione super() (esplicita o implicita) oppure una invocazione esplicita this() (se il programmatore desidera sfruttare e invocare un altro costruttore della stessa classe).

    Ma in ogni caso il super-costruttore viene sempre prima.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2014
    Messaggi
    55
    Quote Originariamente inviata da andbin Visualizza il messaggio
    La PRIMA istruzione di un costruttore è SEMPRE o una invocazione super() (esplicita o implicita) oppure una invocazione esplicita this() (se il programmatore desidera sfruttare e invocare un altro costruttore della stessa classe).

    Ma in ogni caso il super-costruttore viene sempre prima.
    ah ho capito. Quindi ipotizzando l'assenza della classe B, il costruttore di A (implicito o esplicito che sia) avrebbe comunque fatto una chiamata a super() richiamando quale classe? Object?

    Grazie mille!

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Lodin Visualizza il messaggio
    il costruttore di A (implicito o esplicito che sia) avrebbe comunque fatto una chiamata a super() richiamando quale classe? Object?
    In A hai messo due costruttori espliciti (quindi quello implicito NON c'è). Ma in questi la prima istruzione NON è il tuo println ... è la chiamata super() che il compilatore inserisce in automatico se non sei tu che metti un super() o this() esplicito con/senza argomenti.

    E la super-classe di A è (implicitamente) ... Object! In sostanza la catena di invocazione dei costruttori DEVE sempre arrivare fino a Object. In un modo o nell'altro (altrimenti una tua classe non compilerebbe).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2014
    Messaggi
    55
    Quote Originariamente inviata da andbin Visualizza il messaggio
    In A hai messo due costruttori espliciti (quindi quello implicito NON c'è). Ma in questi la prima istruzione NON è il tuo println ... è la chiamata super() che il compilatore inserisce in automatico se non sei tu che metti un super() o this() esplicito con/senza argomenti.

    E la super-classe di A è (implicitamente) ... Object! In sostanza la catena di invocazione dei costruttori DEVE sempre arrivare fino a Object. In un modo o nell'altro (altrimenti una tua classe non compilerebbe).
    Ho capito, sei stato chiarissimo! grazie mille

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.