Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    313

    [JAVA]Implementare polimorfismo

    Salve a tutti.
    Vorrei implementare il polimorfismo ma dato che sono alle prime armi con java non so proprio come si fa.Come esempio vi propongo un esempio che ho trovato in rete:

    Ho un' interfaccia con nome figura geometrica ,il cui metodo è disegnaFigura().
    Adesso questa interfaccia è realizzata dalle classi rettangolo,linea,cerchio sempre con il metodo disegnaFigura(),ognuna dei quali implementa il metodo in base alle sue caratteristiche.
    Adesso come si realizza l'implementazione in java?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JAVA]Implementare polimorfismo

    Originariamente inviato da tcc
    Ho un' interfaccia con nome figura geometrica ,il cui metodo è disegnaFigura().
    Adesso questa interfaccia è realizzata dalle classi rettangolo,linea,cerchio sempre con il metodo disegnaFigura(),ognuna dei quali implementa il metodo in base alle sue caratteristiche.
    Adesso come si realizza l'implementazione in java?
    Se hai già la definizione della interfaccia, ti basta solo definire le tue classi rettangolo ecc... specificando che implementano quella interfaccia. Poi ovviamente devi fornire una implementazione concreta di quel metodo.

    Es.

    codice:
    interface Testabile
    {
        void test ();
    }
    
    class Prova implements Testabile
    {
        public void test ()
        {
            // .......
        }
    }
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    313
    Poi ad esempio nella classe ad esempio main come faccio a richiamare il metodo disegnaFigura() di una determinata classe rettangolo linea o cerchio

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    315
    E' questa la potenza del polimorfismo!!!
    Se dal metodo main() istanzi un oggetto di tipo rettangolo e ne invochi il metodo disegnaFigura, verrà richiamato automaticamente il metodo di rettangolo...

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da koala81
    Se dal metodo main() istanzi un oggetto di tipo rettangolo e ne invochi il metodo disegnaFigura, verrà richiamato automaticamente il metodo di rettangolo...
    Ehm ... no. Il polimorfismo si sfrutta ad esempio così:

    codice:
    interface FiguraGeometrica { void disegnaFigura(); }
    class Rettangolo implements FiguraGeometrica { .... }
    
    ....
    
    FiguraGeometrica fg = new Rettangolo ();
    fg.disegnaFigura();
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    315
    Scusami...mi sono espresso male!!!
    Più o meno volevo dire quello...

    I'm sorry

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    313
    Quindi per istanziare anche cerchio e chiamare i metodi devo fare:

    codice:
        FiguraGeometrica fg = new Rettangolo();
        FiguraGeometrica fg1 = new Cerchio();
        fg.disegnaFigura();
        fg1.disegnaFigura();

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da tcc
    Quindi per istanziare anche cerchio e chiamare i metodi devo fare:

    codice:
        FiguraGeometrica fg = new Rettangolo();
        FiguraGeometrica fg1 = new Cerchio();
        fg.disegnaFigura();
        fg1.disegnaFigura();
    Se vuoi fare una "invocazione polimorfica", sì.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    313
    Una cosa non capisco.Ma se faccio:
    codice:
    Rettangolo ret = new Rettangolo();
    Cerchio cer = new Cerchio();
    ret.disegnaFigura();
    cer.disegnaFigura():
    Ma allora quando viene usato il polimorfismo?

  10. #10
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Viene usato quando non sai a priori quale tipo di figura dovrai disegnare, come in questo caso:
    codice:
    public void disegna(FiguraGeometrica fg) {
       fg.disegnaFigura();
    }
    
    ...
    
    Rettangolo r = new Rettangolo();
    Cerchio c = new Cerchio();
    ...
    disegna( r );
    disegna( c );
    Il metodo disegna() non sa a priori che tipo di figura gli viene passato (un rettangolo? un cerchio? un triangolo?), ma non è un problema: qualsiasi FiguraGeometrica gli venga passata lui la disegna!

    Ed essendo Rettangolo e Cerchio due sottoclassi di FiguraGeometrica esse sono delle figure geometriche.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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 © 2025 vBulletin Solutions, Inc. All rights reserved.