0Pricing
Swift Academy · Lección

Herencia de clases y la palabra clave super

Aprenda a crear subclases, llamar a super.init() y ampliar el comportamiento de una superclase.

Herencia de clases y la palabra clave super es una lección gratuita de Swift Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Swift Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Swift Academy incluye 4 lecciones en total.

Bienvenida

Las clases admiten herencia: una subclase puede ampliar o especializar una superclase. Esto permite reutilizar código y aplicar polimorfismo, pilares fundamentales del diseño orientado a objetos.

Definir una subclase

```swift class Animal { var name: String init(name: String) { self.name = name } func speak() { print("...") } } class Dog: Animal { func fetch() { print("\(name) fetches!") } } let d = Dog(name: "Rex") d.speak() // "..." d.fetch() // "Rex fetches!" ```

super.init(): llamada obligatoria

```swift class Vehicle { var speed: Double init(speed: Double) { self.speed = speed } } class Car: Vehicle { var brand: String init(brand: String, speed: Double) { self.brand = brand super.init(speed: speed) // must call super } } ```

Inicialización en dos fases

Reglas de inicialización en dos fases de Swift: 1. Todas las propiedades almacenadas *propias* deben establecerse *antes* de llamar a `super.init()` 2. Después de `super.init()`, puede personalizar las propiedades heredadas Esto evita que use memoria sin inicializar.

Llamar a métodos de super

```swift class Shape { func draw() { print("Drawing shape") } } class Circle: Shape { override func draw() { super.draw() // call parent implementation print("Drawing circle") } } ```

Herencia de propiedades

Las subclases heredan todas las propiedades de la superclase: ```swift class Person { var name: String = "" var age: Int = 0 } class Employee: Person { var company: String = "" } let e = Employee() e.name = "Alice" e.company = "Acme" ```

Inicializadores designados frente a inicializadores de conveniencia

• *Designado* — inicializa completamente todas las propiedades; llama a `super.init()` • *De conveniencia* — delega en otro init mediante `self.init()` ```swift convenience init(name: String) { self.init(name: name, age: 0) // delegates to designated } ```

required init

Marque un init como `required` para obligar a todas las subclases a implementarlo: ```swift class Base { required init(id: Int) { ... } } class Sub: Base { required init(id: Int) { super.init(id: id) } } ``` Es habitual cuando un método de fábrica necesita crear instancias mediante un protocolo.

Jerarquía de clases y tipos

```swift let a: Animal = Dog(name:"Buddy") print(a is Dog) // true print(a is Animal) // true ``` Un `Dog` ES-UN `Animal`: las instancias de la subclase cumplen los requisitos de tipo de la superclase.

Herencia única

Las clases de Swift solo admiten *herencia única* (una superclase). Sin embargo, una clase puede adoptar muchos protocolos: ```swift class MyVC: UIViewController, UITableViewDelegate, UITableViewDataSource { } ``` Los protocolos son el mecanismo de Swift para la herencia múltiple de comportamiento.

Comprobación rápida

En un inicializador designado de una subclase, ¿cuándo debe llamar a `super.init()`?

Resumen

Puntos clave: • Cree una subclase con `class Sub: Super` • Llame a `super.init()` después de establecer las propiedades propias • Inicialización en dos fases: primero las propiedades propias y después la superclase • `super.method()` llama a la implementación de la clase padre • Swift tiene herencia única; use protocolos para obtener comportamiento múltiple Siguiente: override, final y prevención de la herencia de clases.

Preguntas frecuentes

¿La lección «Herencia de clases y la palabra clave super» es gratis?

Sí — el texto completo de «Herencia de clases y la palabra clave super» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Swift Academy, actualiza a CoddyKit PRO. El curso de Swift Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Herencia de clases y la palabra clave super»?

Aprenda a crear subclases, llamar a super.init() y ampliar el comportamiento de una superclase. Practicas Swift Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Swift Academy?

No se requiere experiencia previa. Swift Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Herencia de clases y la palabra clave super»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Swift Academy?

Sí. Cada lección de Swift Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Herencia de clases y la palabra clave super
  2. override, final y prevención de la herencia
  3. Conversión de tipos: is, as?, as! y as
  4. Deinicializadores y ciclo de vida de la memoria
← Volver a Swift Academy