Sobes.tech
Junior — Middle

Hangi durumlarda ve nerede, sealed olarak işaretlenmiş bir sınıf varsa alt sınıflar ilan edilebilir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Kotlin'de, sealed olarak işaretlenmiş bir sınıf, kalıtım hiyerarşisini sınırlar: Bu sınıfın tüm alt sınıfları, aynı dosyada tanımlanmalıdır. Bu, derleyicinin tüm varisleri bilmesini sağlar ve örneğin when ifadelerinde else bloğu yazmaya gerek kalmadan kullanabilir.

Yani, sealed sınıfın alt sınıfları şu şekilde bildirilebilir:

  • sealed sınıfın tanımlandığı aynı dosyada.
  • Kendisi sealed sınıfın içinde (iç içe sınıflar).

Örnek:

sealed class Result {
    class Success(val data: String) : Result()
    class Error(val error: Throwable) : Result()
}

Veya

sealed class Result

class Success(val data: String) : Result()
class Error(val error: Throwable) : Result()

Ancak, tüm bu alt sınıflar, sealed sınıf ile aynı dosyada olmalıdır. Bu kısıtlama, tür güvenliğini ve tam denetimleri sağlamaya yardımcı olur.