Sobes.tech
Junior

Objective-C və ya Swift-də sinif irs zəncirindən danışın.

sobes.tech Süni İntellekt

AI-dan cavab

Objective-C-də hər sinf NSObject (və ya onun alt sinfi) tərəfindən miras alınır, bu da Foundation çərçivəsində çoxsaylı obyekt yönümlü və string olmayan sinflərin kök sinfidir. NSObject əsas funksionallıq təmin edir, məsələn, yaddaş idarəsi, obyektlərin təsviri, bərabərlik yoxlaması və introspeksiya.

// Objective-C-də, sinifin elan edilməsi avtomatik olaraq `NSObject`-dən miras alınmağı nəzərdə tutur, başqa cür göstərilmədikdə.
@interface MyClass : NSObject // Açıqlanan miras `NSObject`.
// ...
@end

// Əgər açıq miras yoxdursa, o, standart olaraq `NSObject`-dən miras alır.
@interface AnotherClass
// ...
@end

Swift-də, siniflərin NSObject kimi tək kök sinfi yoxdur. Sinif başqa sinifdən miras ala bilər və bu, hierarxiya yaradır. Əgər sinif açıq şəkildə başqa sinifdən miras almırsa, o, öz hierarxiyasında kök sinif olur. Objective-C və Cocoa çərçivələri ilə uyğunluq, Swift və Objective-C arasında bridged (körpü) siniflər vasitəsilə təmin edilir, məsələn, Foundation-dan olan siniflər.

// Açıqlanmayan miras olan sinif - kökündə öz hierarxiyasında.
class MySwiftClass {
    // ...
}

// Digər Swift sinifindən miras alan sinif.
class AnotherSwiftClass: MySwiftClass {
    // ...
}

// Objective-C sinifindən miras alan Swift sinfi (məsələn, Foundation-dan).
import Foundation

class MyViewController: UIViewController { // UIViewController, UIResponder-dan miras alır, o da NSObject-dən.
    // ...
}

Miras zənciri, uşaq sinifdən valideynə doğru gedən siniflər ardıcıllığıdır, kök sinifə (Objective-C-də NSObject və ya Swift hierarxiyasında kök sinif) qədər. Bu, uşaq siniflərin valideyn siniflərin xüsusiyyətlərini və metodlarını istifadə etməsinə və onları yenidən təyin etməsinə imkan verir.