Sobes.tech
Junior

Papaskinkite apie klasės paveldėjimo grandinę Objective-C ar Swift.

sobes.tech AI

Atsakymas iš AI

Objective-C kiekvienas klasė paveldi iš NSObject (arba jo pogrupio), kuris yra daugumos objektų orientuotų ir ne-teksto klasių šakninė klasė Foundation karkase. NSObject suteikia pagrindines funkcijas, tokias kaip atminties valdymas, objektų aprašymas, lygybės patikrinimas ir introspekcija.

// Objective-C klasės deklaracija automatiškai reiškia paveldėjimą iš NSObject, jei nėra aiškiai nurodyta kitaip.
@interface MyClass : NSObject // Aiškus paveldėjimas iš NSObject.
// ...
@end

// Jei nėra aiškaus paveldėjimo, pagal numatytuosius nustatymus paveldi iš NSObject.
@interface AnotherClass
// ...
@end

Swift klasės neturi vieningos šaknies klasės kaip NSObject Objective-C. Klasė gali paveldėti iš kitos klasės, sudarydama hierarchiją. Jei klasė tiesiogiai ne paveldi iš kitos, ji yra savo šaknies klasė. Suderinamumas su Objective-C ir Cocoa karkasais užtikrinamas per klases, kurios yra bridge'intos tarp Swift ir Objective-C, pavyzdžiui, iš Foundation.

// Klasė be aiškaus paveldėjimo - yra savo hierarchijos šaknyje.
class MySwiftClass {
    // ...
}

// Klasė paveldi iš kitos Swift klasės.
class AnotherSwiftClass: MySwiftClass {
    // ...
}

// Swift klasė, paveldinti iš Objective-C klasės (pavyzdžiui, iš Foundation).
import Foundation

class MyViewController: UIViewController { // UIViewController paveldi iš UIResponder, kuris paveldi iš NSObject
    // ...
}

Paveldėjimo grandinė yra klasių seka nuo dukterinės iki tėvinės, iki šaknies klasės (t.y., NSObject Objective-C arba šaknies klasės Swift hierarchijoje). Tai leidžia dukterinėms klasėms naudoti ir perrašyti tėvų klasių savybes ir metodus.