Junior
Պատմեք Swift լեզվում դասերի ժառանգության շղթայի մասին։
sobes.tech AI
Պատասխան AI-ից
Վ Swift բոլոր դասերը անպայման ժառանգում են հիմնական NSObject դասից, նույնիսկ եթե դա բացահայտորեն նշված չէ: Սա տարբերակում է Swift-ը մի շարք այլ լեզուներից, որտեղ կարող է լինել մի քանի հիմնական դաս:
Ժառանգության շղթան ներկայացնում է հիերարխիա, որտեղ յուրաքանչյուր դաս ժառանգում է հատկություններ և մեթոդներ իր ծնողական դասից (superclass): Դասը կարող է ունենալ միայն մեկ անմիջական superclass:
Օրինակ՝
// Հիմնական դաս (անպայման ժառանգում է 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) // Կոչում է superclass-ի ինիցիալիզատորը
}
override func makeSound() { // Պատճենում է superclass-ի մեթոդը
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) // Կոչում է superclass-ի ինիցիալիզատորը
}
// 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դասը նշանակում է, որBդասը ժառանգում էAդասից: - SuperClass: Դասը, որից ժառանգում է։ Օրինակ՝
Animal-ըDog-ի superClass է, իսկDog-ըPoodle-ի superClass: - SubClass: Դասը, որից ժառանգում է։ Օրինակ՝
Dog-ըAnimal-ի subClass է, իսկPoodle-ըDog-ի subClass: super: Օգտագործվում է superClass-ի մեթոդների կամ ինիցիալիզատորների հասանելիության համար:override: Կլիդվոջ, որը օգտագործվում է superClass-ի մեթոդների կամ հատկությունների վերագրում համար:final: Մոդիֆիկատոր, որը կարող է կիրառվել դասի, մեթոդի կամ հատկության վրա՝ արգելելու նրա վերագրումը կամ ժառանգությունը:
Ցանցը, որը ցույց է տալիս ժառանգության շղթան՝
| Դասը | Ժառանգում է | makeSound-ը վերագրում է? |
|---|---|---|
NSObject |
- | Ոչ |
Animal |
NSObject |
Ոչ |
Dog |
Animal |
Այո |
Poodle |
Dog |
Ոչ |
Ժառանգության շղթան թույլ է տալիս կրկնօրինակել կոդը, ստեղծել մասնագիտացված տարբերակներ և կազմակերպել տվյալների կառուցվածքը հիերարխիկ տեսքով։