Junior
Swift proqramlaşdırma dilində sinif irsiyyət zəncirindən danışın.
sobes.tech Süni İntellekt
AI-dan cavab
Swift-də sinflər tək irsiyyəti dəstəkləyir. Hər sinf valideyn sinifindən irs götürür və irs zənciri əsas sinifdən başlayır, heç nədən irs almayan və aşağıya doğru uşaq sinflər vasitəsilə genişlənir.
İrsiyyətin xüsusiyyətləri:
- Yenidən yazma (Overriding): Uşaq sinfi valideyn sinfinin metodlarının, xüsusiyyətlərinin və subskriptlərinin tətbiqini yenidən yaza bilər.
overrideaçar sözü istifadə olunur. - Yenidən yazmanı qarşısını alma (Preventing Overrides): Bir sinif üzvünün yenidən yazılmasını
finalaçar sözü ilə işarələyərək qarşısını almaq mümkündür. Bütün sinfifinalkimi elan etmək olar. - Valideyn sinfə giriş: Uşaq sinfi
superaçar sözü ilə valideyn sinfinin həyata keçirilmiş üzvlərinə daxil ola bilər. Bu, valideyn metodunun həyata keçirilməsini çağırmaq və ya valideyn xüsusiyyətinə daxil olmaq üçün faydalıdır.
Nümunə:
// Əsas sinif
class Vehicle {
var currentSpeed = 0.0
func makeNoise() {
// Boş həyata keçirmə
}
}
// Vehicle-dan irs alan uşaq sinif
class Car: Vehicle {
var numberOfDoors = 4
// makeNoise metodunun yenidən yazılması
override func makeNoise() {
print("Beep beep")
}
}
// Car-dan irs alan uşaq sinif
class ElectricCar: Car {
var batteryLevel = 100.0
// Yeni xüsusiyyət əlavə etmək
let isElectric = true
// Əsas sinifin xüsusiyyətinin yenidən yazılması
override internal var currentSpeed: Double {
didSet {
if currentSpeed > 0 {
print("Elektrik avtomobili hərəkətdədir")
}
}
}
}
Bu nümunədə:
Vehicle— əsas sinif.CarVehicle-dən irs alır.numberOfDoorsxüsusiyyətini əlavə edir vəmakeNoisemetodunu yenidən yazar.ElectricCarCar-dən irs alır.batteryLevelxüsusiyyətini əlavə edir,isElectricsabitini vəcurrentSpeedxüsusiyyətini yenidən yazar.
İrsiyyət zənciri: Vehicle -> Car -> ElectricCar. Bu zəncirdəki hər bir sinf, yuxarıda yerləşən sinflərin bütün açıq (və ya başqa kontekstdə əlçatan) üzvlərinə giriş əldə edə bilər.