Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    63

    Interface ed Ereditarietà Multipla

    Salve a tutti avrei dei dubbi per quanto riguarda questo argomento. Studiano il linguaggio java sono riuscito a comprendere l'utilità delle interface e la loro potenzialità come ad esempio l'implementazione di una interfaccia da più classi diverse permette un funzionamento diverso dei metodi implementati oppre ad esempio è possibile creare classi che gestiscono oggetti che implementano interface e che solo a runtime capiscono quale classe che implementa l'interfaccia sia la più adatta, il tutto favorisce l'estendibilità e il riuso del codice. Il mio dilemma riguarda l'ereditarietà multipla con l'utilizzo delle interface, mi spiego meglio,ad esempio una classe A che implementa l'interfaccia Comperable e Runnable implementa anche i metodi compare to() e run(), il mio problema è: Qual'è l'utilita nel implementare più interface ? Se invece dichiarassi i metodi compare to() e run() direttamente nella classe senza implementare le due interface quale sarebbe il vantaggio o svantaggio? Quindi in definitiva qual'è il vantaggio nel implementare più interface?

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613

    Re: Interface ed Ereditarietà Multipla

    Originariamente inviato da 87Fra87
    Salve a tutti avrei dei dubbi per quanto riguarda questo argomento. Studiano il linguaggio java sono riuscito a comprendere l'utilità delle interface e la loro potenzialità come ad esempio l'implementazione di una interfaccia da più classi diverse permette un funzionamento diverso dei metodi implementati oppre ad esempio è possibile creare classi che gestiscono oggetti che implementano interface e che solo a runtime capiscono quale classe che implementa l'interfaccia sia la più adatta, il tutto favorisce l'estendibilità e il riuso del codice. Il mio dilemma riguarda l'ereditarietà multipla con l'utilizzo delle interface, mi spiego meglio,ad esempio una classe A che implementa l'interfaccia Comperable e Runnable implementa anche i metodi compare to() e run(), il mio problema è: Qual'è l'utilita nel implementare più interface ? Se invece dichiarassi i metodi compare to() e run() direttamente nella classe senza implementare le due interface quale sarebbe il vantaggio o svantaggio? Quindi in definitiva qual'è il vantaggio nel implementare più interface?
    In realtà l'utilità è la stessa, che vengano implementate una o più interfacce. Se non implementassi le due interfacce ma solo i metodi, come "dimostreresti" che la tua classe può fare davvero queste due cose? Puoi anche implementare un metodo compareTo, ma se non implementi l'interfaccia Comparable non puoi passarlo ad un metodo che accetta come parametro un oggetto Comparable... non può mica dirgli "fidati che il metodo c'è".

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    63

    Re: Re: Interface ed Ereditarietà Multipla

    Originariamente inviato da Kaamos
    In realtà l'utilità è la stessa, che vengano implementate una o più interfacce. Se non implementassi le due interfacce ma solo i metodi, come "dimostreresti" che la tua classe può fare davvero queste due cose? Puoi anche implementare un metodo compareTo, ma se non implementi l'interfaccia Comparable non puoi passarlo ad un metodo che accetta come parametro un oggetto Comparable... non può mica dirgli "fidati che il metodo c'è".
    Quindi detta in parole povere la funzionalità più importante delle interfacce è quella di Creare classi che possano gestire oggetti generici scegliendo quello più opportuno a runtime giusto?
    Inoltre se una classe A implementa due interface ex Runnable e Comparable e una classe B ha il seguente metodo:
    gestisci(Runnable c){

    Runnable[] b = c.run() //metodo che istanzia e restituisce deu oggetti di tipo Runnable
    b[0].compareto(b[1])

    }
    Lo posso fare se l'oggetto passatoli oltre ad implementare l'interfaccia Runnuble implementa anche l'interfaccia Comparable o no?

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613

    Re: Re: Re: Interface ed Ereditarietà Multipla

    Originariamente inviato da 87Fra87
    Quindi detta in parole povere la funzionalità più importante delle interfacce è quella di Creare classi che possano gestire oggetti generici scegliendo quello più opportuno a runtime giusto?
    Inoltre se una classe A implementa due interface ex Runnable e Comparable e una classe B ha il seguente metodo:
    gestisci(Runnable c){

    Runnable[] b = c.run() //metodo che istanzia e restituisce deu oggetti di tipo Runnable
    b[0].compareto(b[1])

    }
    Lo posso fare se l'oggetto passatoli oltre ad implementare l'interfaccia Runnuble implementa anche l'interfaccia Comparable o no?
    In linea di massima, le interfacce esprimono "cosa fa quest'oggetto" e le classi "come lo fa". Ed ovviamente un oggetto può essere in grado di fare diverse cose anche completamente scollegate fra loro, implementando di conseguenza più interfacce.

    Puoi passare un oggetto che implementa entrambe le interfacce ad un metodo che si aspetta un parametro di tipo Runnable, ma quello che fai dentro al metodo è sbagliato: intanto il metodo run non dà nessun valore di ritorno, e poi b[0] avrebbe tipo Runnable il quale NON comprende il metodo compareTo. Se hai bisogno di un parametro che sia sottotipo sia di Runnable che di Comparable<Runnable> (o quello che ti pare come tipo generico), è meglio usare i generici:

    codice:
    <T extends Runnable & Comparable<Runnable>> void foo(T object)
    {
      object.run();
      object.compareTo(object);
      ...
    Senza i generici dovresti fare controlli a run-time con instanceof, ma da Java 5 in poi non c'è motivo di non usarli, anzi.

    Se specifchi come tipo solamente Runnable, non puoi sfruttare le caratteristiche di Comparable, e viceversa. Se le vuoi entrambi devi specificarle tutte e due.

    Utilizza il tag [CODE].

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    63
    Ciao grazie per le risposte ti vorrei chiedere due ultime info:

    1 Cosa sono i generici?
    2 Quali altre potenzialità offrono le interface (magari anche nell'uso di generici)?

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da 87Fra87
    Ciao grazie per le risposte ti vorrei chiedere due ultime info:

    1 Cosa sono i generici?
    2 Quali altre potenzialità offrono le interface (magari anche nell'uso di generici)?
    1. prima di chiedere dai un'occhiata su Google, inoltre certe cose non si possono certo spiegare in un post. Se stai seguendo un libro o qualcosa di simile aspetta d'incontrarli lì, altrimenti puoi farti un'idea dal tutorial Oracle di base riguardo ai generici: http://docs.oracle.com/javase/tutori...ics/index.html

    2. beh lo scopo delle interfacce è questo, non c'è molto altro.

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.