Junior
Swift programlama dilinde sınıf kalıtım zincirinden bahsedin.
sobes.tech yapay zeka
AI'dan gelen yanıt
Swift'te sınıflar tekli kalıtımı destekler. Her sınıf, bir ana sınıftan kalıtım alır ve bir hiyerarşi oluşturur. Kalıtım zinciri, hiçbir şeyden kalıtım almayan temel bir sınıfla başlar ve alt sınıflar aracılığıyla aşağı doğru uzanır.
Kalıtım özellikleri:
- Geçersiz kılma (Overriding): Alt sınıf, ana sınıfın yöntemlerini, özelliklerini ve alt dizinlerini geçersiz kılabilir.
overrideanahtar kelimesi kullanılır. - Geçersiz kılmayı önleme (Preventing Overrides): Bir sınıf üyesinin geçersiz kılınmasını engellemek için
finalanahtar kelimesi ile işaretlenebilir. Tüm sınıffinalolarak ilan edilebilir. - Ana sınıfa erişim: Alt sınıf,
superanahtar kelimesini kullanarak ana sınıfın uygulanmış üyelerine erişebilir. Bu, ana sınıfın bir yönteminin uygulamasını çağırmak veya ana sınıf özelliğine erişmek için faydalıdır.
Örnek:
// Temel sınıf
class Vehicle {
var currentSpeed = 0.0
func makeNoise() {
// Boş uygulama
}
}
// Vehicle'dan kalıtım alan alt sınıf
class Car: Vehicle {
var numberOfDoors = 4
// makeNoise yöntemini geçersiz kılma
override func makeNoise() {
print("Tık tık")
}
}
// Car'dan kalıtım alan alt sınıf
class ElectricCar: Car {
var batteryLevel = 100.0
// Yeni bir özellik ekleme
let isElectric = true
// Temel sınıfın özelliğini geçersiz kılma
override internal var currentSpeed: Double {
didSet {
if currentSpeed > 0 {
print("Elektrikli araç hareket halinde")
}
}
}
}
Bu örnekte:
Vehicle— temel sınıf.Car—Vehicle'dan kalıtım alır.numberOfDoorsözelliğini ekler vemakeNoiseyöntemini geçersiz kılar.ElectricCar—Car'dan kalıtım alır.batteryLevelözelliğini ekler,isElectricsabitini vecurrentSpeedözelliğini geçersiz kılar.
Kalıtım zinciri: Vehicle -> Car -> ElectricCar. Bu zincirdeki her sınıf, hiyerarşideki üst sınıfların tüm açık (veya başka bir bağlamda erişilebilir) üyelerine erişebilir.