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
}