Junior
Parlez de la chaîne d'héritage des classes dans le langage de programmation Swift.
sobes.tech IA
Réponse de l'IA
Les classes en Swift prennent en charge l'héritage simple. Chaque classe hérite d'une classe parente, formant une hiérarchie. La chaîne d'héritage commence par une classe de base, qui n'hérite de rien, et s'étend vers le bas à travers les classes filles.
Propriétés de l'héritage :
- Redéfinition (Overriding) : La classe fille peut redéfinir l'implémentation des méthodes, propriétés et sous-scripts de la classe parente. Le mot-clé
overrideest utilisé. - Prévenir la redéfinition (Preventing Overrides) : Il est possible d'empêcher la redéfinition d'un membre de la classe en le marquant avec le mot-clé
final. Toute la classe peut être déclarée commefinal. - Accès à la classe parente : La classe fille peut accéder aux membres implémentés de la classe parente en utilisant le mot-clé
super. Cela est utile pour appeler l'implémentation d'une méthode parent ou accéder à une propriété parent.
Exemple :
// Classe de base
class Vehicle {
var currentSpeed = 0.0
func makeNoise() {
// Implémentation vide
}
}
// Classe fille héritant de Vehicle
class Car: Vehicle {
var numberOfDoors = 4
// Redéfinition de la méthode makeNoise
override func makeNoise() {
print("Ding ding")
}
}
// Classe fille héritant de Car
class ElectricCar: Car {
var batteryLevel = 100.0
// Ajout d'une nouvelle propriété
let isElectric = true
// Redéfinition de la propriété de la classe de base
override internal var currentSpeed: Double {
didSet {
if currentSpeed > 0 {
print("La voiture électrique est en mouvement")
}
}
}
}
Dans cet exemple :
Vehicle— classe de base.Carhérite deVehicle. Il ajoute la propriéténumberOfDoorset redéfinit la méthodemakeNoise.ElectricCarhérite deCar. Il ajoute la propriétébatteryLevel, la constanteisElectricet redéfinit la propriétécurrentSpeed.
Chaîne d'héritage : Vehicle -> Car -> ElectricCar. Chaque classe dans cette chaîne a accès à tous les membres publics (ou accessibles dans un autre contexte) des classes supérieures dans la hiérarchie.