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

    [JAVA] Domanda sulle classi abstract

    Se ho una classe abstract che mi descrive un supertipo da cui derivo vari sottotipi.

    Nelle classi che estendono la classe abstract posso mettere dei metodi in più che non sono stati dichiarati nella classe abstract?

    Grazie
    Andrea

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    633
    basta provare, ma direi sì
    Alcuni miei articoli in PRO.HTML.IT: JavaScript | DHTML | DOM
    Sviluppo : wedev | forum

  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: [JAVA] Domanda sulle classi abstract

    Originariamente inviato da AndreaNobili
    Nelle classi che estendono la classe abstract posso mettere dei metodi in più che non sono stati dichiarati nella classe abstract?
    Certamente! Volendo puoi anche creare nuove versioni di un metodo ereditato (overloading)
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

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

    Re: [JAVA] Domanda sulle classi abstract

    Originariamente inviato da AndreaNobili
    Se ho una classe abstract che mi descrive un supertipo da cui derivo vari sottotipi.

    Nelle classi che estendono la classe abstract posso mettere dei metodi in più che non sono stati dichiarati nella classe abstract?
    Certo! Ovviamente non potrai invocarli in modo "polimorfico". Cioè non puoi fare:

    codice:
    SuperTipo s = new SottoTipo();  // ok
    s.metodoNuovoInSottoTipo();     // NO!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5

    Re: Re: [JAVA] Domanda sulle classi abstract

    Originariamente inviato da andbin
    Certo! Ovviamente non potrai invocarli in modo "polimorfico". Cioè non puoi fare:

    codice:
    SuperTipo s = new SottoTipo();  // ok
    s.metodoNuovoInSottoTipo();     // NO!
    Questo però era perchè il polimorfismo in java garantisce che il linguaggio è type safe giusto?

    Cioè se dichiaro s del supertitpo ma lo costruisco come un suo sottotipo...allora potrò usarvi sopra solo i metodi del supertitpo....

    E se ad esempio io dichiarassi un vettore di oggetti supertipo...e ci vado a mettere dentro oggetti creati come sottotipi? allo stesso modo non potrei usare i metodi dei sottotipi?

    Grazie
    Andrea

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    813

    Re: Re: Re: [JAVA] Domanda sulle classi abstract

    Originariamente inviato da AndreaNobili

    E se ad esempio io dichiarassi un vettore di oggetti supertipo...e ci vado a mettere dentro oggetti creati come sottotipi? allo stesso modo non potrei usare i metodi dei sottotipi?
    indubbiamente...
    ti dirò di più.
    visto che ogni classe in java deriva da classe Object, tu puoi creare anche un array di Object e mettere tutti gli oggetti che vuoi, ma senza castare esplicitamente (cosa non bella da fare) non puoi chiamare i metodi delle sotto classi
    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!

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.