Junior
Խոսեք Swift ծրագրավորման լեզվում դասերի ժառանգության շղթայի մասին։
sobes.tech AI
Պատասխան AI-ից
Swift դասերը միակ ժառանգություն են ապահովում: Յուրաքանչյուր դաս ժառանգում է մեկ ծնողական դասից, ձևավորելով հորիզոնական շղթա: Ժառանգության շղթան սկսվում է հիմնական դասից, որը ոչ մի բանից չի ժառանգում, և հասնում է ներքև՝ դուստր դասերի միջոցով:
Ժառանգության հատկություններ:
- Ավտոմատ վերագրում (Overriding): Դուստր դասը կարող է վերագրել ծնողական դասի մեթոդների, հատկությունների և սաբսկրիպտների իրականացմանը: Օգտագործվում է
overrideբանալի բառը: - Վերագրումների արգելք (Preventing Overrides): Կարող եք կանխել անդամի վերագրումը՝ նշելով այն
finalբանալի բառով: Բոլոր դասը կարող է հայտարարվել որպեսfinal: - Ծնող դասին հասանելիություն: Դուստր դասը կարող է հասանելի լինել ծնողական դասի իրականացված անդամներին
superբանալի բառի միջոցով: Սա օգտակար է ծնողական մեթոդի իրականացման կանչելու կամ ծնողական հատկությանը հասնելու համար:
Օրինակ:
// Հիմնական դաս
class Vehicle {
var currentSpeed = 0.0
func makeNoise() {
// Դատարկ իրականացում
}
}
// Դուստր դաս, որը ժառանգում է Vehicle-ից
class Car: Vehicle {
var numberOfDoors = 4
// Վերագրում `makeNoise` մեթոդը
override func makeNoise() {
print("Beep beep")
}
}
// Դուստր դաս, որը ժառանգում է Car-ից
class ElectricCar: Car {
var batteryLevel = 100.0
// Նոր հատկություն ավելացնել
let isElectric = true
// Վերագրում `currentSpeed` հատկությունը
override internal var currentSpeed: Double {
didSet {
if currentSpeed > 0 {
print("Էլեկտրական մեքենան շարժվում է")
}
}
}
}
Այս օրինակով՝
Vehicle— հիմնական դաս:Carժառանգում էVehicle-ից, ավելացնում էnumberOfDoorsհատկությունը և վերագրումmakeNoiseմեթոդը:ElectricCarժառանգում էCar-ից, ավելացնում էbatteryLevelհատկությունը,isElectricկոնստանտը և վերագրումcurrentSpeedհատկությունը:
Ժառանգության շղթա՝ Vehicle -> Car -> ElectricCar: Յուրաքանչյուր դաս հասանելի է բոլոր բաց (կամ այլ կոնտեքստում հասանելի) անդամներին վերևի դասերից: