Junior
Cos'è una classe astratta?
sobes.tech AI
Risposta dell'AI
Una classe astratta è una classe che non può essere creata direttamente usando l'operatore new. Serve come base per altre classi e può contenere metodi astratti (senza implementazione) e metodi normali (con implementazione). Le classi astratte sono definite con la parola chiave abstract.
Caratteristiche principali:
- Impossibile da istanziare: Non è possibile creare un oggetto della classe astratta stessa.
- Può contenere metodi astratti: Metodi senza corpo, che devono essere sovrascritti nelle classi derivate.
- Può contenere metodi normali: Metodi con implementazione, che possono essere ereditati o sovrascritti.
- Eredità: Le classi derivate ereditano dalla classe astratta e devono implementare tutti i suoi metodi astratti.
Esempio:
abstract class Shape {
// Metodo astratto senza implementazione
double getArea();
// Metodo normale con implementazione
void describe() {
print('Questa è una figura.');
}
}
class Circle extends Shape {
double radius;
Circle(this.radius);
// Implementazione del metodo astratto
@override
double getArea() {
return 3.14 * radius * radius;
}
}
class Square extends Shape {
double side;
Square(this.side);
// Implementazione del metodo astratto
@override
double getArea() {
return side * side;
}
}