Ereditarietà e overriding in Swift

Mattepuffo's logo
Ereditarietà e overriding in Swift

Ereditarietà e overriding in Swift

Oggi vediamo un semplice esempio di ereditarietà e overriding in Swift.

Partiamo subito dalla classe base:

class Veicolo {
    
    var numeroRuote: Int;
    var tipoCarburante: String;
    
    func desc() -> String {
        return "Numero ruote: \(numeroRuote); Tipo carburante \(tipoCarburante)";
    }
    
    init() {
        numeroRuote = 0;
        tipoCarburante = "";
    }
}

Ci sono due campi ed una funzione che ritorna la descrizione.

Qui sotto due esempi di implementazione:

class Macchina: Veicolo {
    
    override init() {
        super.init();
        numeroRuote = 4;
        tipoCarburante = "Benzina";
    }
}

class Bicicletta: Veicolo {
    
    override init() {
        super.init();
        numeroRuote = 2;
        tipoCarburante = "Pedali";
    }
    
    override func desc() -> String {
        return "Spinta di pedali: SI FATICA!";
    }
}

Come vedete nel secondo caso (Bicicletta) abbiamo fatto l'overriding anche della funzione descrizione.

Richiamiamo il tutto così:

import Foundation

var macchina = Macchina();
print(macchina.desc());

var bici = Bicicletta();
print(bici.desc());

Enjoy!


Condividi

Commentami!