Junior — Middle
Jak zaimplementować dziedziczenie po klasie zadeklarowanej jako sealed?
sobes.tech AI
Odpowiedź od AI
W Kotlinie klasa zadeklarowana jako sealed ogranicza dziedziczenie tylko w tym samym pliku, w którym jest zadeklarowana. Oznacza to, że dziedziczenie po klasie sealed jest możliwe tylko w tym samym pliku, w którym jest ona zdefiniowana.
Jeśli klasa jest zadeklarowana jako sealed i znajduje się w innym pliku, nie można po niej dziedziczyć.
Aby zaimplementować dziedziczenie po klasie sealed, należy:
- Znajdować się w tym samym pliku, co zadeklarowana klasa
sealed. - Zadeklarować podklasy w tym pliku.
Przykład:
sealed class Result
class Success(val data: String) : Result()
class Error(val error: Throwable) : Result()
Jeśli wymagana jest rozszerzalność poza plikiem, klasa sealed nie jest odpowiednia; należy użyć zwykłej klasy otwartej lub interfejsu.