Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Estendere una classe astratta

    Salve,

    ho un piccolo dubbio. Se estendo una classe astratta normalmente devo fornire l'implementazione di tutti i metodi astratti che contiene. Ma se è una classe astratta a estendere un'altra classe astratta? E' la stessa cosa o dovrebbe generarsi qualche errore se non implemento qualche metodo astratto?

    Ho questo dubbio perchè usando eclipse non mi da errore e il programma funziona, ma non sono sicuro della correttezza delle inizializzazioni.

    Grazie anticipatamente per le risposte.

  2. #2
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Una classe con metodi astratti è una classe astratta.* E fin qua ci siamo.

    Ora, se estendi una classe astratta ma non implementi tutti i metodo astratti, hai ancora una classe astratta!

    Se poi il programma gira ed Eclipse non si lamenta sei quasi sicuro... Potrebbe anche essere che Eclipse smetta di compilare il codice e non trovi gli errori per questa ragione (quindi continua ad eseguire l'ultima versione compilata), ma allora basta scrivere una porcheria nel codice e vedere se Eclipse la segnala. Se la segnala, va tutto bene, se non la segnala (intendiamoci: accade raramente)... c'è un po' da rognare...


    * Correziona apportata dopo il richiamo di andbin
    "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

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

    Re: Estendere una classe astratta

    Originariamente inviato da asterixnow
    Ma se è una classe astratta a estendere un'altra classe astratta?
    Allora non sei obbligato a fornire una implementazione di tutti i metodi astratti.
    Quello che è importante è che nella prima sottoclasse "concreta" (non abstract) tutti i metodi abstract siano implementati.

    Originariamente inviato da Pastore12
    Una classe astratta è una classe con metodi astratti.
    Non è detto ... una classe può essere marcata abstract ma non avere metodi abstract!!! Se c'è almeno 1 metodo abstract allora la classe deve essere abstract!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Grazie delle risposte, mi avete tolto un grande dubbio!

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.