Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    813

    ereditarietà e implementazioni

    ciao a tutti...
    ho un quesito cui spiegazione è assai complicata, però in se non c'è molto da capire. Ci proverò:

    Ho una classe Entita che viene estesa da Personaggio1 e Personaggio2.
    Personaggio1 e Personaggio2 implementano a loro volta l'interfaccia Stampabile, però non può essere implementata (per motivi architetturali, e poi la gerarchia delle classi nel mio caso è molto + vasta) in Entita.

    Vorrei far un array o una collection in modo che possa contenere oggetti di tipo Entita e che contemporaneamente implementino l'interfaccia Stampabile...
    E' possibile fare una cosa del genere o no? La priorità va sull'interfaccia...

    ripeto...la classe (astratta) Entita non può implementare Stampabile, perché non ha senso
    Nell'anno 1968 è bastata la potenza di due Commodore 64 per lanciare con successo una navicella sulla Luna; nell'anno 2007 ci vogliono la potenza di un processore quad core 3.30 GHz e 3 Gb di RAM (requisiti minimi ufficiali) per utilizzare Windows Vista. Qualcosa deve essere andato storto!

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    72
    Vorrei far un array o una collection in modo che possa contenere oggetti di tipo Entita e che contemporaneamente implementino l'interfaccia Stampabile
    :master: :master: non sono sicuro sia possibile farlo..
    Potresti creare una classe astratta che estende Entità e implementa stampabile. In questo modo Personaggio1 e Personaggio2 potrebbero estendere questa sottoclasse..
    A questo punto basta fare:
    codice:
    Vector<EntitàStampabile> v = new Vector<EntitàStampabile>();
    Non so fare di meglio
    Spero di essere stato di aiuto
    Ciao

  3. #3
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Originariamente inviato da fr84
    codice:
    Vector<EntitàStampabile> v = new Vector<EntitàStampabile>();
    Io una volta ho fatto testare sui computer dell'università un algoritmo che sul mio portatile funzionava benissimo. Giusto per verificare i tempi di esecuzione.
    Solo che l'algoritmo non funzionava sui sistemi Linux per via di una lettera accentata.
    Da allora evito le lettere accentate come la peste.

    A parte questa piccola osservazione, sono d'accordo con te, ma sono totalmente disorientato da questa frase

    Originariamente inviato da Hysoka
    ripeto...la classe (astratta) Entita non può implementare Stampabile, perché non ha senso
    I metodi di Entità che implementano stampabile non saranno realmente implementati, ma saranno metodi astratti..
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Se l'interfaccia Stampabile può essere implementata solamente da classi che derivano da Entita puoi costruire la collection utilizzando direttamente Stampabile (da questo punto di vista, non c'è differenza fra una classe e una interfaccia).

    Se, invece, Stampabile può essere implementata anche da classi che non derivano da Entita, la cosa migliore è quella suggerita da fr84 (al di là dell'utilizzo delle lettere accentate): costruisci una classe astratta EntitaStampabile che estende Entita e implementa Stampabile... dopodichè le classi Personaggio1 e Personaggio2 deriveranno direttamente da EntitaStampabile.


    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

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da Pastore12
    I metodi di Entità che implementano stampabile non saranno realmente implementati, ma saranno metodi astratti..
    Questo è vero... ma implementare Stampabile nella classe astratta Entita significa anche rendere obbligatoriamente "Stampabili" tutte le sue sottoclassi... e questo potrebbe non essere vero in assoluto.


    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.