Herencia de Clases en Programación Orientada a Objetos
Clase 16 de 27 • Curso de Programación Orientada a Objetos en Swift
Contenido del curso
Tipos de Propiedades
- 5

Propiedades Almacenadas en Swift: Uso y Ejemplos Prácticos
04:48 min - 6

Propiedades Lazy en Programación: Uso y Ventajas
07:16 min - 7

Propiedades Computadas en Swift: Uso y Ejemplos Prácticos
10:30 min - 8

Computed properties de solo lectura en Swift
05:14 min - 9

Observers en Swift: willSet y didSet
07:18 min - 10

Variables estáticas en clases, estructuras y enumerados
09:19 min
Métodos, subíndices y herencia
- 11

Métodos de instancia en Swift con self
07:35 min - 12

Métodos Mutantes en Estructuras y Enumerados en Swift
09:05 min - 13

Métodos de clase en Swift: static vs class
10:50 min - 14

Subíndices en Swift: Sintaxis y Aplicaciones Prácticas
09:01 min - 15

Manipulación de Matrices y Subíndices en Programación
12:27 min - 16

Herencia de Clases en Programación Orientada a Objetos
Viendo ahora - 17

Sobrescritura de Métodos y Propiedades en Clases Derivadas
12:11 min
Inicializadores o constructores
- 18

Inicializadores en Sweet: Creación y Uso Efectivo de Constructores
06:50 min - 19

Modificación de Constructores y Parámetros Opcionales en Swift
10:10 min - 20

Constructores Designados y de Conveniencia en Herencia de Clases
09:37 min - 21

Constructores y manejo de inicialización opcional en Swift
08:42 min - 22

Destructores en Programación: Liberación de Recursos Automática
07:12 min
Encadenamiento opcional
Conclusión
Domina la herencia en Swift con un ejemplo claro y práctico: crea una superclase con propiedades y métodos comunes, y extiéndela con subclases que añaden comportamientos específicos. Así reutilizas código, evitas duplicidades y construyes jerarquías que escalan sin esfuerzo.
¿Qué es la herencia y por qué acelera tu desarrollo?
La herencia permite que una clase hija adquiera automáticamente las propiedades y métodos de su clase madre. Si necesitas una clase “igual pero con algo más”, la subclase hereda lo común y añade lo propio. En el ejemplo, Vehicle sirve como base para especializar en Bicycle y Tandem.
- Superclase: define lo común a todos los tipos.
- Subclase: hereda y agrega nuevas características.
- Propiedad autocomputada: calcula su valor al accederse.
- Beneficio clave: menos código repetido y más claridad.
¿Cómo se implementa la herencia con clases en Swift?
Partimos de un Playground nuevo y definimos una jerarquía simple. Observa cómo cada subclase amplía a la anterior sin reescribir lo ya hecho.
¿Cómo se define la superclase vehicle?
class Vehicle {
var currentSpeed: Double = 0.0
var description: String {
return "viajando a \(currentSpeed) kilómetros por hora"
}
func makeNoise() {
// do nothing: cada vehículo hará su propio ruido.
}
}
let someVehicle = Vehicle()
print(someVehicle.description) // "viajando a 0.0 kilómetros por hora"
- Modela lo común: velocidad y description como propiedad autocomputada.
- Prepara un método para especializar:
makeNoise()sin implementación aquí.
¿Cómo hereda bicycle y añade propiedades?
class Bicycle: Vehicle {
var hasBasket: Bool = false
}
let bicycle = Bicycle()
bicycle.hasBasket = true
bicycle.currentSpeed = 15
print(bicycle.description) // "viajando a 15.0 kilómetros por hora"
- Bicycle es “un vehículo con algo extra”: hasBasket.
- Hereda
currentSpeed,descriptionymakeNoise()deVehicle.
¿Cómo especializa tandem sobre bicycle?
class Tandem: Bicycle {
var currentNumberOfPassengers: Int = 0
}
let tandem = Tandem()
tandem.hasBasket = true
tandem.currentNumberOfPassengers = 2
tandem.currentSpeed = 22
print(tandem.description) // "viajando a 22.0 kilómetros por hora"
- Tandem hereda de Bicycle y agrega currentNumberOfPassengers.
- Modifica propiedades heredadas y mantiene el acceso a
description.
¿Qué jerarquías conviene practicar y qué habilidades desarrollas?
A partir de Vehicle, crea árboles de clases para un videojuego con distintos tipos de vehículos. Úsalos como ejercicio de diseño: define qué comparte el padre y qué añade cada hijo.
- Desde Vehicle: coche, moto, barco, bicicleta.
- Desde coche: Fórmula uno, coche de calle, tanqueta, furgoneta.
- Desde moto: moto eléctrica, moto de gasolina, patineta.
- Desde barco: transatlántico, yate, barquita de pesca.
Propiedades y métodos a considerar en los hijos.
- Cilindrada y tipo de motor.
- Tipo de combustible o capacidad eléctrica.
- Acciones específicas: ruidos distintos en makeNoise().
Habilidades que refuerzas al practicar. - Modelar una jerarquía con clase madre e hijos. - Detectar atributos comunes vs. específicos. - Instanciar objetos y modificar propiedades heredadas. - Prepararte para sobrescribir variables y métodos más adelante.
¿Qué vehículos añadirías y qué propiedades los hacen únicos? Comparte ideas y casos de uso en comentarios.