Objective-C же Swiftте класстар мурасамалы цепочкасы жөнүндө айтып бериңиз.
sobes.tech AI
AIден жооп
Objective-Cде, ар бир класс NSObject (же анын подклассу) тарабынан мурас алат, ал көбүнчө объектке багытталган жана строка эмес классылар үчүн Foundation чөйрөсүндө негизги класс болуп саналат. NSObject негизги функцияларды камсыз кылат, мисалы, эс тутумду башкаруу, объекттердин сүрөттөмөсү, бирдейликти текшерүү жана интроспекция.
// Objective-Cде, класс декларациясы автоматтык түрдө `NSObject`-ден мурас алуу деп эсептелет, эгер башкача көрсөтүлбөсө.
@interface MyClass : NSObject // Ачык мурас `NSObject`.
// ...
@end
// Эгер ачык мурас көрсөтүлбөсө, ал автоматтык түрдө `NSObject`-ден мурас алат.
@interface AnotherClass
// ...
@end
Swiftте, класстарда NSObject сыяктуу бирдиктүү түпкү класс жок. Класс башка класстан мурас алса болот жана бул иерархия түзөт. Эгер класс ачык түрдө башка класстан мурас албаса, ал өзүнүн иерархиясында түпкү класс болуп саналат. Objective-C жана Cocoa чөйрөлөрү менен шайкештик bridged (көпүрөлөнгөн) класстар аркылуу камсыздалган, мисалы, Foundationдан келген класстар.
// Ачык мурассыз класс - өзүнүн иерархиясында түпкү.
class MySwiftClass {
// ...
}
// Башка Swift класстан мурас алган класс.
class AnotherSwiftClass: MySwiftClass {
// ...
}
// Swift классы, Objective-C класынан мурас алат (мисалы, Foundationдан).
import Foundation
class MyViewController: UIViewController { // UIViewController UIResponderдан мурас алат, ал да NSObjectдан
// ...
}
Мурус чынжыры — бул баладан атага чейинки класстардын тизмеги, түпкү класка чейин (Objective-Cде NSObject, же Swift иерархиясында түпкү класс). Бул балалуу класстарга ата класстардын өзгөчөлүктөрүн жана ыкмаларын колдонууга жана кайра аныктоого мүмкүндүк берет.