CodeGym
Promozione
Learning
Corsi
Tasks
Surveys & Quizzes
Games
Help
Schedule
Community
Users
Forum
Chat
Articles
Success stories
Activity
Reviews
Subscriptions
Tema chiaro

Lezioni

  • Recensioni
  • Chi siamo
Inizia
Inizia a imparare
Start learning now
  • I miei progressi
  • Corsi
  • Mappa Quest
  • Lezioni
  • Il concetto di ereditarietà, sintassi di extends

    JAVA 25 SELF
    Livello 17,Lezione 0
    In questa lezione analizzeremo che cos’è l’ereditarietà in Java, come usarla per evitare la duplicazione del codice e come dichiarare gerarchie tramite la parola chiave extends. Vedremo che cosa eredita esattamente una sottoclasse, quali sono le limitazioni (ereditarietà singola, membri privati, costruttori), esamineremo un esempio pratico con gli animali, alcune sfumature legate ai costruttori e gli errori tipici.
    Disponibile
  • Ridefinizione dei metodi (override), annotazione @Override

    JAVA 25 SELF
    Livello 17,Lezione 1
    In questa lezione analizziamo la ridefinizione dei metodi in Java: come e perché una sottoclasse sostituisce il comportamento del genitore, a cosa serve l'annotazione @Override, come funziona il polimorfismo quando si invoca tramite un riferimento di tipo base, nonché le regole chiave (firma, modificatori di accesso, eccezioni, covarianza) e le limitazioni ( static, final, private). Concludiamo con la pratica su un mini‑progetto «Zoo» e con l'analisi degli errori tipici.
    Disponibile
  • Uso di super: chiamare il costruttore e i metodi della classe base

    JAVA 25 SELF
    Livello 17,Lezione 2
    Analizziamo la parola chiave super in Java: come chiamare metodi e costruttori della classe base, come accedere ai campi nascosti del genitore, quando e perché estendere il comportamento tramite super e super(...), nonché le limitazioni (non si può usare nei metodi statici, niente accesso a private) e gli errori tipici. Molti esempi pratici su gerarchie Animal/ Cat/ Dog e Vehicle/ Car.
    Disponibile
  • Creare gerarchie di classi: esempi dal mondo reale

    JAVA 25 SELF
    Livello 17,Lezione 3
    Impareremo a progettare e implementare gerarchie di classi in Java: come distinguere tra generale e specifico, costruire l’albero di ereditarietà, dove è appropriata la relazione is-a e quando è meglio usare la composizione ( has-a). Vedremo esempi concreti (animali, geometria, trasporti, utenti), sottigliezze architetturali ed errori tipici di progettazione.
    Disponibile
  • Problemi e limiti dell'ereditarietà

    JAVA 25 SELF
    Livello 17,Lezione 4
    In questa lezione discutiamo i limiti del modello di ereditarietà in Java: ereditarietà singola delle classi, assenza di ereditarietà dei costruttori e inaccessibilità dei membri private. Analizzeremo gerarchie «fragili» e l’effetto di un’ereditarietà «che si rompe», mostreremo alternative — composizione ( has-a), delegazione e interfacce, nonché i criteri «quando serve davvero extends». Lungo il percorso noteremo la chiamata al costruttore del genitore tramite super(...) e gli errori di progettazione tipici.
    Disponibile
  • Il concetto di polimorfismo e a cosa serve

    JAVA 25 SELF
    Livello 18,Lezione 0
    In questa lezione analizziamo il polimorfismo in Java: che cos’è, in cosa differiscono overloading e overriding, come funziona il binding tardivo e perché un’interfaccia può avere molte implementazioni. Con esempi pratici vedremo come il polimorfismo semplifica l’architettura, rende il codice estendibile e riduce l’accoppiamento tra moduli.
    Disponibile
  • Sovraccarico dei metodi (overloading)

    JAVA 25 SELF
    Livello 18,Lezione 1
    Immergiamoci nel sovraccarico dei metodi in Java: quando ha senso dichiarare più versioni dello stesso metodo, come il compilatore sceglie la corrispondenza migliore in base ai parametri, perché non si può sovraccaricare solo in base al tipo di ritorno e come funzionano i costruttori sovraccaricati e ... varargs. Analizzeremo esempi con println, creeremo un piccolo Calculator e passeremo in rassegna gli errori tipici legati alla conversione automatica e alle ambiguità tra Integer/ Long.
    Disponibile
  • Override dei metodi (overriding): differenza rispetto all’overloading

    JAVA 25 SELF
    Livello 18,Lezione 2
    Analizziamo in dettaglio l’override dei metodi in Java: come l’overriding garantisce il polimorfismo durante l’esecuzione, in cosa si differenzia dall’ overloading, quali regole valgono (firme, accesso, eccezioni, covarianza), come usare @Override e invocare la logica del genitore tramite super. Mostreremo esempi pratici e affronteremo gli errori tipici.
    Disponibile
  • Uso del polimorfismo nella pratica

    JAVA 25 SELF
    Livello 18,Lezione 3
    Mostriamo il polimorfismo con esempi concreti: come memorizzare oggetti eterogenei in un’unica collezione del tipo base e chiamare i metodi «corretti» senza if/ switch, come l’aggiunta di una nuova sottoclasse non richiede di riscrivere la logica e quali sono i limiti dell’approccio. Costruiremo una gerarchia di dipendenti con il metodo work(), parleremo di estendibilità e analizzeremo gli errori tipici.
    Disponibile
  • Relazione tra polimorfismo e classi astratte

    JAVA 25 SELF
    Livello 18,Lezione 4
    Come le classi e i metodi astratti definiscono un contratto comune e abilitano il polimorfismo in Java: perché non si può creare un oggetto astratto, come i sottotipi implementano i metodi obbligatori, come lavorare tramite il tipo base ottenendo al contempo il comportamento «corretto». Vedremo esempi con animali e una gerarchia di dipendenti, sfumature di sintassi ed errori tipici.
    Disponibile
  • Astrazione nella programmazione a oggetti: perché e come applicarla

    JAVA 25 SELF
    Livello 19,Lezione 0
    Un'introduzione chiara all'astrazione nella programmazione a oggetti in Java: che cos'è, a cosa serve e come applicarla nella progettazione. Analizzeremo gli strumenti del linguaggio — classi astratte abstract class e interfacce interface, metodi astratti e il lavoro tramite un contratto comune (ad esempio, chiamate come payment.process() o draw()). Con esempi pratici ( Shape, Payment, Transport) mostreremo come nascondere i dettagli dell'implementazione, ridurre l'accoppiamento e semplificare l'estensione del sistema.
    Disponibile
  • Classi e metodi astratti: sintassi ed esempi

    JAVA 25 SELF
    Livello 19,Lezione 1
    In questa lezione analizziamo passo dopo passo le classi e i metodi astratti in Java: quando serve abstract, come dichiarare una class astratta, in cosa differisce da un interface e come implementare i metodi obbligatori (per esempio, makeSound()) nelle sottoclassi. Accompagneremo la teoria con esempi pratici ( Animal, Transport, Shape) e passeremo in rassegna gli errori tipici: dal tentativo di creare un’istanza di una classe astratta all’uso scorretto dei modificatori.
    Disponibile
  • 1
  • ...
  • 8
  • 9
  • 10
  • 11
  • 12
  • ...
  • 30
Learn
  • Registration
  • Java Course
  • Help with Tasks
  • Pricing
  • Java Syntax
Community
  • Users
  • Articles
  • Forum
  • Chat
  • Success Stories
  • Activity
  • Affiliate Program
Company
  • About us
  • Contacts
  • Reviews
  • Press Room
  • CodeGym for EDU
  • FAQ
  • Support
CodeGymCodeGym is an online course for learning Java programming from scratch. This course is a perfect way to master Java for beginners. It contains 1200+ tasks with instant verification and an essential scope of Java fundamentals theory. To help you succeed in education, we’ve implemented a set of motivational features: quizzes, coding projects, content about efficient learning, and a Java developer’s career.
Follow us
Lingua dell'interfaccia
English Deutsch Español हिन्दी Français Português Polski বাংলা 简体中文 मराठी தமிழ்
Italiano
Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
"Programmers Are Made, Not Born" © 2026 CodeGym
MastercardVisa
"Programmers Are Made, Not Born" © 2026 CodeGym