Junior
Fale sobre a cadeia de herança de classes na linguagem de programação Swift.
sobes.tech IA
Resposta da IA
As classes em Swift suportam herança simples. Cada classe herda de uma classe pai, formando uma hierarquia. A cadeia de herança começa com uma classe base, que não herda de nada, e estende-se para baixo através das classes filhas.
Propriedades de herança:
- Sobrescrever (Overriding): A classe filha pode sobrescrever a implementação de métodos, propriedades e subíndices da classe pai. Usa-se a palavra-chave
override. - Prevenir sobrescritas (Preventing Overrides): Pode-se impedir a sobrescrita de um membro da classe marcando-o com a palavra-chave
final. Toda a classe pode ser declarada comofinal. - Acesso à classe pai: A classe filha pode acessar os membros implementados da classe pai usando a palavra-chave
super. Isto é útil para chamar a implementação de um método da classe pai ou acessar uma propriedade do pai.
Exemplo:
// Classe base
class Vehicle {
var currentSpeed = 0.0
func makeNoise() {
// Implementação vazia
}
}
// Classe filha que herda de Vehicle
class Car: Vehicle {
var numberOfDoors = 4
// Sobrescrever o método makeNoise
override func makeNoise() {
print("Beep beep")
}
}
// Classe filha que herda de Car
class ElectricCar: Car {
var batteryLevel = 100.0
// Adicionar uma nova propriedade
let isElectric = true
// Sobrescrever a propriedade do classe base
override internal var currentSpeed: Double {
didSet {
if currentSpeed > 0 {
print("Carro elétrico está em movimento")
}
}
}
}
Neste exemplo:
Vehicle— classe base.Carherda deVehicle. Ele adiciona a propriedadenumberOfDoorse sobrescreve o métodomakeNoise.ElectricCarherda deCar. Ele adiciona a propriedadebatteryLevel, a constanteisElectrice sobrescreve a propriedadecurrentSpeed.
Cadeia de herança: Vehicle -> Car -> ElectricCar. Cada classe nesta cadeia tem acesso a todos os membros públicos (ou acessíveis em outro contexto) das classes superiores na hierarquia.