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
- 5

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

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

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

Variables de solo lectura en programación y su uso en estructuras y clases
05:14 - 9

Implementación de Observers en Propiedades de Clases en Swift
07:18 - 10

Variables estáticas en clases, estructuras y enumerados
09:19
- 11

Métodos en Clases y Estructuras: Creación y Uso Práctico
07:35 - 12

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

Métodos Estáticos y Herencia en Programación de Videojuegos
10:50 - 14

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

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

Herencia de Clases en Programación Orientada a Objetos
10:14 - 17

Sobrescritura de Métodos y Propiedades en Clases Derivadas
12:12
- 18

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

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

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

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

Destructores en Programación: Liberación de Recursos Automática
07:13
¿Qué es el concepto de herencia en programación orientada a objetos?
La programación orientada a objetos (POO) es una de las metodologías más fundamentales y ampliamente utilizadas en el desarrollo de software. Uno de sus conceptos clave es la herencia, que permite que una clase derive características de otra. Imagina que has creado una clase con ciertas propiedades y métodos y necesitas una clase nueva que comparte la mayoría, pero tiene algunas características adicionales. Aquí es donde entra en juego la herencia: la nueva clase puede heredar de la existente, simplificando el proceso de reutilización de código.
¿Cómo se implementa la herencia en Swift?
Para implementar la herencia en Swift, sigue estos pasos básicos:
- Define una clase madre.
- De esta clase, puede derivarse una o más clases hijas.
- La clase hija hereda las propiedades y métodos de la clase madre, permitiendo que mantenga o extienda su funcionalidad.
A continuación, se muestra cómo se crea en Swift utilizando el ejemplo de vehículo y sus variantes:
// Clase padre 'Vehicle'
class Vehicle {
var currentSpeed: Double = 0.0
var description: String {
return "Viajando a \(currentSpeed) kilómetros por hora"
}
func makeNoise() {
// Cada vehículo tendrá su propia forma de hacer ruido.
}
}
// Clase hija 'Bicycle' que hereda de 'Vehicle'
class Bicycle: Vehicle {
var hasBasket: Bool = false
}
¿Cómo se definen clases específicas utilizando herencia?
La herencia no solo simplifica la reutilización del código, sino que también posibilita la creación de estructuras más complejas y especializadas. Las clases hijas pueden tener propiedades y métodos adicionales que no están presentes en su clase madre. Usemos el ejemplo de bicicletas y vehículos:
// Nueva clase hija 'Tandem' que hereda de 'Bicycle'
class Tandem: Bicycle {
var currentNumberOfPassengers: Int = 0
}
// Instancias de clases y uso de propiedades y métodos
let bicycle = Bicycle()
bicycle.currentSpeed = 15.0
print(bicycle.description) // "Viajando a 15 kilómetros por hora"
let tandem = Tandem()
tandem.currentSpeed = 22.0
tandem.currentNumberOfPassengers = 2
print(tandem.description) // "Viajando a 22 kilómetros por hora"
¿Cómo aplicar herencia en tu propio proyecto?
Para implementar una jerarquía compleja en tu proyecto usando herencia, considera comenzar con la identificación de las características comunes y las diferencias entre los elementos que deseas representar mediante clases. Aquí te ofrecemos algunas recomendaciones:
-
Identifica la clase madre: Una clase madre debe representar el concepto más general del conjunto de elementos.
-
Determina las clases hijas: Estas deben representar subtipos más específicos que enriquecen las propiedades y funcionalidades heredadas.
-
Agrega características únicas: Proporciona especificidad añadiendo propiedades o métodos adicionales a las clases hijas.
Por ejemplo, expandiendo el ejemplo dado, podríamos tener:
- Clase madre:
Vehicle. - Clases hijas:
Car,Motorcycle,Boat. - Subclases de
Car:FormulaOneCar,StreetCar,Truck. - Subclases de
Motorcycle:ElectricMotorcycle,GasolineMotorcycle. - Subclases de
Boat:Yacht,Sailboat.
Al estructurar tu proyecto de esta manera, lograrás un diseño más eficiente y modular que no solo mejora la legibilidad del código, sino también facilita el mantenimiento y la escalabilidad a futuro. Este ejercicio de diseño te ayudará a mejorar tus habilidades en programación orientada a objetos y será fundamental para proyectos complejos. ¡Sigue explorando y expandiendo tus conocimientos en herencia para desarrollar soluciones aún más sofisticadas!