Sobes.tech
Junior

Swift programlama dilinde basit sınıf ile open sınıf arasındaki fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Basit bir sınıf (erişim belirteci olmadan) varsayılan olarak dahili (internal) erişim seviyesine sahiptir. Sadece aynı modül (hedef) içinde kalıtım yapılabilir.

open sınıfı en yüksek erişim seviyesine sahiptir ve üyeleri (yöntemler, özellikler, alt dizinler) hem aynı modül içinde hem de diğer modüllerde (frameworkler, kütüphaneler) miras alınabilir ve üzerine yazılabilir.

Modifikator Modül içinde kalıtım Modül dışında kalıtım Modül içinde üyelerin üzerine yazma Modül dışında üyelerin üzerine yazma
internal (varsayılan) Evet Hayır Evet Hayır
open Evet Evet Evet Evet
// Basit bir sınıf örneği (internal varsayılan) MODÜL A İÇİNDE
class MyInternalClass {
    func internalMethod() {}
}

// open sınıf örneği MODÜL A İÇİNDE
open class MyOpenClass {
    open func openMethod() {}
}
// MODÜL A İÇİN KULLANIM
class SubInternalClassInModuleA: MyInternalClass { // TAMAM
    override func internalMethod() {}  // TAMAM
}

class SubOpenClassInModuleA: MyOpenClass { // TAMAM
    override func openMethod() {} // TAMAM
}
// MODÜL A DIŞINDA KULLANIM (örneğin, modül B'de)
// hata: open olmayan sınıftan kalıtım yapılamaz 'MyInternalClass'
// class SubInternalClassInModuleB: MyInternalClass { }

class SubOpenClassInModuleB: MyOpenClass { // TAMAM
    override func openMethod() {} // TAMAM
}