Junior
Swift dilində sinif irs zəncirindən danışın.
sobes.tech Süni İntellekt
AI-dan cavab
Swift-də bütün sinflər, açıq şəkildə göstərilməsə də, avtomatik olaraq NSObject əsas sinfindən irs götürür. Bu, Swift-i bəzi digər dillərdən fərqləndirir, çünki orada bir neçə kök sinf ola bilər.
İrs zənciri, hər bir sinfin valideyn sinfindən (superklass) xüsusiyyətlər və metodlar irs götürdüyü ierarxiyanı təmsil edir. Bir sinif yalnız bir birbaşa superklassə sahib ola bilər.
Nümunə:
// Əsas sinif (avtomatik olaraq NSObject-dən irs alır)
class Animal {
var name: String
init(name: String) {
self.name = name
}
func makeSound() {
print("Naməlum heyvan səsi")
}
}
// Dog sinfi Animal-dən irs alır
class Dog: Animal {
let breed: String
init(name: String, breed: String) {
self.breed = breed
super.init(name: name) // Superklassın initsializatorunu çağırır
}
override func makeSound() { // Superklassın metodunu üst- yazır
print("Hav-hav")
}
}
// Poodle sinfi Dog-dən irs alır
class Poodle: Dog {
var isHypoallergenic: Bool
init(name: String, breed: String, isHypoallergenic: Bool) {
self.isHypoallergenic = isHypoallergenic
super.init(name: name, breed: breed) // Superklassın initsializatorunu çağırır
}
// Poodle makeSound metodunu üst- yazmır, Dog-dən irs alır
}
let myDog = Dog(name: "Buddy", breed: "Labrador")
myDog.makeSound() // Çıxış: Hav-hav
let myPoodle = Poodle(name: "Lucy", breed: "Miniature Poodle", isHypoallergenic: true)
myPoodle.makeSound() // Çıxış: Hav-hav - Dog-dən irs alır
Əsas nöqtələr:
- İrs:
B: Asinfi,BsinfininA-dan irs aldığını göstərir. - Superklass: İrs alınan sinf. Nümunədə,
AnimalDogüçün superklassdır vəDogPoodleüçün superklassdır. - Subklass: Digər sinfdən irs alan sinf. Nümunədə,
DogAnimal-ın subklassıdır vəPoodleDog-un subklassıdır. super: Superklassın metod və ya initsializatorlarının tətbiqinə giriş üçün istifadə olunur.override: Subklassda, superklassın metod və ya xüsusiyyətlərini üst- yazmaq üçün istifadə olunan açar söz.final: Sinf, metod və ya xüsusiyyət üzərində tətbiq oluna bilən və onun üst- yazılmasını və ya irs alınmasını qadağan edən modifikator.
Misaldakı irs zəncirini göstərən cədvəl:
| Sinf | İrs alınır | makeSound-u üst- yazır? |
|---|---|---|
NSObject |
- | Xeyr |
Animal |
NSObject |
Xeyr |
Dog |
Animal |
Bəli |
Poodle |
Dog |
Xeyr |
İrs zənciri kodun təkrar istifadəsini təmin edir, sinflərin ixtisaslaşdırılmış versiyalarını yaratmağa və məlumatların strukturunu hierarxik şəkildə təşkil etməyə imkan verir.