Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    88

    estendere una classe con una classe astratta

    Salve,
    come avrete capito dal titolo il mio dubbio è concettuale.
    E' lecito far estendere una classe java con una classe astratta?
    a me non suona benissimo.
    il problema è che la classe java (che farebbe da padre all'astratta) e il progetto non possono essere toccati e questa classe ha delle funzionalità che mi servono in delle classi che devo creare, nelle quali, a loro volta verrebbero implementati i metodi definiti nella classe astratta.

    chi mi spiega quale è la soluzione più pulita?

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    Io non ci trovo niente di male

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    E' lecito, l'importante è che non metti costruttori di nessun tipo nella classe padre.

    Tu dici perché mai posso voler fare una roba del genere?
    Nei casi in cui crei una gerarchia di classi base che fanno qualcosa, poi ne crei una sotto-gerarchia x che in particolare vuoi faccia qualcosa ma vuoi deciderne il comportamento successivamente costringendo il programmatore ad implementare determinati metodi (quelli abstract) e non fornendo un default.

    Potresti fare diverse robe:
    1. spostare i metodi abstract in una interfaccia e dire che le classi figlie implementano pure quell'interfaccia (l'ereditarietà multipla con interfacce è ammessa)
    2. fornire un'implementazione di default nella classe padre, e fare l'override nelle figlie.

    Quale preferisco? sono entrambe valide, dipende dalla tua applicazione (e se hai l'esigenza che la classe padre abbia un costruttore).

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.