Junior
Swift тилинде класстар мурас жыйнагы тууралуу айтып бериңиз.
sobes.tech AI
AIден жооп
Swiftте бардык класстар космодогу NSObject негизги класынан автоматтык түрдө мурас алышат, эгер ал так көрсөтүлбөсө да. Бул Swiftти башка тилдерден айырмалап турат, анда бир нече түпкү класстар болушу мүмкүн.
Мурас цепочкасы — бул хиерархияны көрсөтөт, анда ар бир класс өзүнүн ата-энесинен (суперклассынан) касиеттерди жана методдорду мурас алат. Класс бир гана түздөн-түз суперкласска ээ боло алат.
Мисал:
// Негизги класс (жеке `NSObject`тен мурас алат)
class Animal {
var name: String
init(name: String) {
self.name = name
}
func makeSound() {
print("Белгисиз жаныбар үнү")
}
}
// Dog классы Animalтен мурас алат
class Dog: Animal {
let breed: String
init(name: String, breed: String) {
self.breed = breed
super.init(name: name) // Суперкласс инициаторун чакыруу
}
override func makeSound() { // Суперкласс методун кайра аныктоо
print("Гав-гав")
}
}
// Poodle классы Dogтен мурас алат
class Poodle: Dog {
var isHypoallergenic: Bool
init(name: String, breed: String, isHypoallergenic: Bool) {
self.isHypoallergenic = isHypoallergenic
super.init(name: name, breed: breed) // Суперкласс инициаторун чакыруу
}
// Poodle `makeSound` методун кайра аныктабайт эмес, ал Dogтен мурас алат
}
let myDog = Dog(name: "Buddy", breed: "Labrador")
myDog.makeSound() // Натыйжа: Гав-гав
let myPoodle = Poodle(name: "Lucy", breed: "Miniature Poodle", isHypoallergenic: true)
myPoodle.makeSound() // Натыйжа: Гав-гав — Dogтен мурас алат
Негизги учурлар:
- Мурас:
B: AклассыAклассынан мурас алат дегенди билдирет. - Суперкласс: мурас алган класс. Мисалда
Animal—Dogүчүн суперкласс, ал эмиDog—Poodleүчүн суперкласс. - Подкласс: башка класстан мурас алган класс. Мисалда
Dog—Animalподкласс, ал эмиPoodle—Dogподкласс. super: суперкласс методдорун жана инициаторлорун колдонууга мүмкүндүк берет.override: суперкласс методдорун жана касиеттерин кайра аныктоо үчүн колдонулган ачкыч сөз.final: класс, метод же касиетке колдонулуп, анын кайра аныктоосун жана мурас алууну тыюулайт.
Мурас цепочкасы төмөнкүдөй көрүнүштү көрсөтөт:
| Класс | Кайсы классынан мурас алган | makeSound кайра аныкталдыбы? |
|---|---|---|
NSObject |
- | Жок |
Animal |
NSObject |
Жок |
Dog |
Animal |
Ооба |
Poodle |
Dog |
Жок |
Мурас цепочкасы кодду кайра колдонууга, атайын версияларды түзүүгө жана маалыматтардын структурасын иерархиялык түрдө уюштурууга мүмкүндүк берет.