Sobes.tech
Junior — Middle

Como é alcançada a herança múltipla de classes ou protocolos na linguagem Swift?

sobes.tech IA

Resposta da IA

Em Swift, uma classe só pode herdar de uma superclasse, ou seja, a herança múltipla de classes não é suportada. No entanto, para alcançar um efeito semelhante, usa-se herança de uma classe e implementação de múltiplos protocolos. Os protocolos em Swift definem um conjunto de requisitos (métodos, propriedades) que uma classe, estrutura ou enumeração deve implementar. Assim, uma classe pode herdar comportamento de uma superclasse e ao mesmo tempo cumprir vários protocolos, permitindo combinar funcionalidades.

Exemplo:

protocol Drivable {
    func drive()
}

protocol Flyable {
    func fly()
}

class Vehicle {
    func start() {
        print("Veículo iniciado")
    }
}

class FlyingCar: Vehicle, Drivable, Flyable {
    func drive() {
        print("Dirigindo na estrada")
    }
    
    func fly() {
        print("Voando no céu")
    }
}

let myFlyingCar = FlyingCar()
myFlyingCar.start()  // Veículo iniciado
myFlyingCar.drive()  // Dirigindo na estrada
myFlyingCar.fly()    // Voando no céu

Dessa forma, a herança múltipla é alcançada através da herança de uma classe e implementação de múltiplos protocolos.