Sobes.tech
Junior

Objective-C veya Swift'te sınıf kalıtım zincirinden bahsedin.

sobes.tech yapay zeka

AI'dan gelen yanıt

Objective-C'de, her sınıf NSObject (veya onun alt sınıfı) tarafından miras alınır, bu da Foundation çerçevesinde çoğu nesne yönelimli ve string olmayan sınıfların kök sınıfıdır. NSObject, bellek yönetimi, nesne tanımı, eşitlik testi ve introspeksiyon gibi temel işlevsellik sağlar.

// Objective-C'de, bir sınıf bildirimi otomatik olarak `NSObject`'den kalıtım anlamına gelir, aksi belirtilmedikçe.
@interface MyClass : NSObject // Açık kalıtım `NSObject`.
// ...
@end

// Açık kalıtım yoksa, varsayılan olarak `NSObject`'den kalıtım alınır.
@interface AnotherClass
// ...
@end

Swift'te, sınıfların NSObject gibi tek bir kök sınıfı yoktur. Bir sınıf başka bir sınıftan kalıtım alabilir ve böylece bir hiyerarşi oluşturur. Eğer bir sınıf açıkça başka bir sınıftan kalıtım almazsa, kendi hiyerarjisinde kök sınıf olur. Objective-C ve Cocoa çerçeveleriyle uyumluluk, Swift ve Objective-C arasında köprülenen (bridged) sınıflar aracılığıyla sağlanır, örneğin Foundation'dan sınıflar gibi.

// Açık kalıtım olmayan sınıf - kendi hiyerarjisinde kök.
class MySwiftClass {
    // ...
}

// Başka bir Swift sınıfından kalıtım alan sınıf.
class AnotherSwiftClass: MySwiftClass {
    // ...
}

// Objective-C sınıfından kalıtım alan Swift sınıfı (örneğin Foundation'dan).
import Foundation

class MyViewController: UIViewController { // UIViewController, UIResponder'dan kalıtım alır, o da NSObject'den.
    // ...
}

Kalıtım zinciri, çocuk sınıftan ebeveyn sınıfa doğru, kök sınıfa (Objective-C'de NSObject veya Swift hiyerarşisinde kök sınıf) kadar devam eden bir dizidir. Bu, çocuk sınıfların ebeveyn sınıfların özelliklerini ve metodlarını kullanmasını ve geçersiz kılmasını sağlar.