None ha scritto:
Mi sono inventato un testo per capire meglio l'utilità delle classi astratte in java ma credo sia valido anche per altri linguaggi oop
Quello che ho letto fin'ora dice sempre la stessa cosa ovvero come crearle, ma non ho capito quando
Se la spiegazione è confusa fatemelo sapere per cortesia
Sì mi sembra un po' confusa. Comunque: ci possono essere diversi motivi per rendere una classe astratta ma generalmente il motivo più "tipico" è che la classe rappresenta un concetto molto generalizzato e appunto "astratto". Si possono fare diversi esempi:
- classe astratta Animale con sottoclassi "concrete" Cane, Gatto, ecc...
- classe astratta Solido con sottoclassi "concrete" Cubo, Sfera, ecc...
- classe astratta Veicolo con sottoclassi "concrete" Automobile, Moto, ecc...
Se non l'hai già fatto, prova il "classico" esercizio della gerarchia dei solidi, dove Solido è astratto e ha i metodi
double calcolaSuperficie() e
double calcolaVolume() astratti che poi saranno implementati dalle sottoclassi concrete. Se vuoi, similarmente, la gerarchia delle figure piane.