Junior
Hable sobre la cadena de herencia de clases en el lenguaje de programación Swift.
sobes.tech AI
Respuesta de la IA
Las clases en Swift soportan herencia simple. Cada clase hereda de una clase padre, formando una jerarquía. La cadena de herencia comienza con una clase base, que no hereda de nada, y se extiende hacia abajo a través de las clases hijas.
Propiedades de herencia:
- Sobrescritura (Overriding): La clase hija puede sobrescribir la implementación de métodos, propiedades y subíndices de la clase padre. Se usa la palabra clave
override. - Prevención de sobrescritura (Preventing Overrides): Se puede prevenir la sobrescritura de un miembro de la clase marcándolo con la palabra clave
final. Toda la clase puede declararse comofinal. - Acceso a la clase padre: La clase hija puede acceder a los miembros implementados de la clase padre usando la palabra clave
super. Esto es útil para llamar a la implementación de un método de la clase padre o acceder a una propiedad del padre.
Ejemplo:
// Clase base
class Vehicle {
var currentSpeed = 0.0
func makeNoise() {
// Implementación vacía
}
}
// Clase hija que hereda de Vehicle
class Car: Vehicle {
var numberOfDoors = 4
// Sobrescribir el método makeNoise
override func makeNoise() {
print("Beep beep")
}
}
// Clase hija que hereda de Car
class ElectricCar: Car {
var batteryLevel = 100.0
// Añadir una nueva propiedad
let isElectric = true
// Sobrescribir la propiedad del clase base
override internal var currentSpeed: Double {
didSet {
if currentSpeed > 0 {
print("El coche eléctrico está en movimiento")
}
}
}
}
En este ejemplo:
Vehicle— clase base.Carhereda deVehicle. Añade la propiedadnumberOfDoorsy sobrescribe el métodomakeNoise.ElectricCarhereda deCar. Añade la propiedadbatteryLevel, la constanteisElectricy sobrescribe la propiedadcurrentSpeed.
Cadena de herencia: Vehicle -> Car -> ElectricCar. Cada clase en esta cadena tiene acceso a todos los miembros públicos (o accesibles en otro contexto) de las clases superiores en la jerarquía.