Junior
Ինչ կարող եք ասել ժառանգության մասին ծրագրավորման մեջ։
sobes.tech AI
Պատասխան AI-ից
Ներառումը օբյեկտային ծրագրավորման մեխանիզմ է, որը թույլ է տալիս մեկ դասի (նվագ կամ ժառանգական դաս) ժառանգել այլ դասի (հայր կամ հիմնական դաս) հատկություններն ու մեթոդները:
Հիմնական հասկացություններ՝
- Կոդի վերօգտագործում: Ներառումը թույլ է տալիս ժառանգական դասին օգտագործել արդեն գոյություն ունեցող կոդը, խուսափելով կրկնությունից:
- is-a հարաբերություն: Ներառումը մոդելավորում է "է" (is-a) հարաբերությունը։ Օրինակ, "Որոշակի շուն է մեմել":
- Երկարացում: Ժառանգական դասը կարող է ավելացնել նոր հատկություններ և մեթոդներ կամ վերագրել (override) առկա մեթոդները՝ փոխելու նրա վարքը:
Swift-ում՝
- Ներառումը միայն դասերի համար է։ Կառուցվածքները և enum-ները չեն աջակցում ժառանգությանը:
- Օգտագործվում է
classբանալի բառը: - Նվագ դասը նշվում է երկու կետից հետո և ծնողական դասի անունից:
- Ծնող դասի մեթոդները կարող են վերագրել
overrideբանալի բառով: - Ծնող դասի իրականացման մուտքը կատարվում է
superբանալի բառով:
Օրինակ՝
class Animal {
var name: String
init(name: String) {
self.name = name
}
func makeSound() {
print("Անհայտ ձայն")
}
}
class Dog: Animal {
func bark() {
print("Հաու!")
}
override func makeSound() {
print("Հաու-հաու!")
}
}
let myDog = Dog(name: "Բարոն")
myDog.makeSound() // Արտածում՝ Հաու-հաու!
myDog.bark() // Արտածում՝ Հաու!
Կարևոր է հիշել, որ գերազանց կամ սխալ օգտագործումը ժառանգության կարող է հանգեցնել կոդի ճկունության և սպասարկման խնդիրների (օրինակ՝ "խարխլվող հիմնական դասի խնդիր"): Swift-ում հաճախ նախընտրում են այլ մեխանիզմներ՝ ինչպես կոմպոզիցիա և պրոտոկոլներ՝ ճկունություն ապահովելու համար: