Junior
Czym jest klasa abstrakcyjna?
sobes.tech AI
Odpowiedź od AI
Klasa abstrakcyjna to klasa, której nie można utworzyć bezpośrednio za pomocą operatora new. Służy jako podstawa dla innych klas i może zawierać metody abstrakcyjne (bez implementacji) oraz zwykłe metody (z implementacją). Klasy abstrakcyjne definiuje się słowem kluczowym abstract.
Główne cechy:
- Nie można tworzyć instancji: Nie można utworzyć obiektu samej klasy abstrakcyjnej.
- Może zawierać metody abstrakcyjne: Metody bez ciała, które muszą być nadpisane w klasach pochodnych.
- Może zawierać zwykłe metody: Metody z implementacją, które mogą być dziedziczone lub nadpisane.
- Dziedziczenie: Klasy pochodne dziedziczą po klasie abstrakcyjnej i muszą zaimplementować wszystkie jej metody abstrakcyjne.
Przykład:
abstract class Shape {
// Metoda abstrakcyjna bez implementacji
double getArea();
// Zwykła metoda z implementacją
void describe() {
print('To jest figura.');
}
}
class Circle extends Shape {
double radius;
Circle(this.radius);
// Implementacja metody abstrakcyjnej
@override
double getArea() {
return 3.14 * radius * radius;
}
}
class Square extends Shape {
double side;
Square(this.side);
// Implementacja metody abstrakcyjnej
@override
double getArea() {
return side * side;
}
}