Visualizzazione dei risultati da 1 a 6 su 6

Hybrid View

  1. #1
    Non sono sicuro di avere capito... Ad esempio, nella terza "istruzione" "a.confronta(f2)"...
    Io ragiono così, a è un'arancia, gli viene passato un frutto di tipo arancia, quindi ci troviamo nel metodo di arancia e dovrebbe stampare "sono diversi", secondo il mio ragionamento. Invece, stampa ancora sono uguali!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Superandri91 Visualizza il messaggio
    Non sono sicuro di avere capito... Ad esempio, nella terza "istruzione" "a.confronta(f2)"...
    Io ragiono così, a è un'arancia, gli viene passato un frutto di tipo arancia, quindi ci troviamo nel metodo di arancia e dovrebbe stampare "sono diversi", secondo il mio ragionamento. Invece, stampa ancora sono uguali!
    a è di tipo Arancia, la variabile intendo ... non cosa ci assegni (che nel tuo caso è proprio un Arancia). Come ho già detto, ai fini della invocazione del metodo, non conta per il compilatore quale oggetto assegni. Questo entrerà in gioco solo in fase di runtime.

    L'argomento è di tipo Frutto. Idem, per il compilatore non importa (sempre ai fini della invocazione) che tu hai fatto f2 = new Arancia();. Stai passando una variabile, che è di tipo Frutto. Stop (per il compilatore).

    Dal momento che a è Arancia, il compilatore "guarderà" tra i metodi di Arancia E di Frutto (quelli che eredita, avendo esteso Frutto appunto).

    C'è in Arancia un metodo chiamato "confronta" che riceve un Frutto? Sì, c'è, è quello in Frutto!
    In Arancia c'è un confronta(Arancia a) ma questo è un overload ... non un override!

    Pertanto a runtime stamperà "Sono uguali".
    Ultima modifica di andbin; 22-09-2014 a 09:21
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.