No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Sobreescritura de variables y m茅todos

17/27
Recursos

Aportes 7

Preguntas 0

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Buenos efectos de sonido de los veh铆culos

Esta clase te hace reflexionar que antes de ponerte a codear busques maquetear como podr铆as hacerlo.
Quiz谩 eso mejore tu productividad y calidad de c贸digo.

Interesante esto en otros lenguajes se llama sobrecarga de funciones.

Se le puede aplicar el final a la propia clase para que esta no tenga propiedad de herencia ?

import UIKit

class Vehiculo{
var currentSpeed=0.0
var description:String{
return 鈥淰iajanda a (currentSpeed) km/h鈥
}
func makeNoise(){
print( 鈥淓l ruido depende del vehiculo鈥)
}
}

let someVehicle=Vehiculo()
print(someVehicle.description)

// herencia
class Bicyclew:Vehiculo{
var hasBasket=false
override func makeNoise() {
print(鈥淓l ruido de este vehiculo es Glin Glin鈥)
}
}
//herencia de hijo-- y este hereda de su padre
class Tandem:Bicyclew{
var currrentNumberOfPassangers=0
}

let tandem=Tandem()
tandem.hasBasket=true
tandem.currentSpeed=22.0
tandem.currrentNumberOfPassangers=2

print(" (tandem.description) y su cantidad de pasajeros es (tandem.currrentNumberOfPassangers)")

// override metodos padre

class Train:Vehiculo{
var numberOfWagones=0
override func makeNoise() {
print(鈥淐hooooo Chooooooo鈥)
}
}

let train=Train()
train.makeNoise()

tandem.makeNoise()

Algo curioso es que con la palabra final evitamos que una clase hija sobreescriba variables, metodos etc.
Pero si intentamos asignarle un valor a esa variable final desde la instancia y no desde la definicion de la nueva clase, si se puede sobreescribir.
Ejemplo:

class Vehicle {
    var color: String = ""
    var currentSpeed: Double = 0.0
    final var brand: String = "Renault"
}
var myVehicle = Vehicle()
myVehicle.brand = "Honda" // no da error y asigna correctamente el nuevo valor.
class Tank : gasCar {
    var guns = 2
    override func makeNoise() {
           print("clan Clan")
        }
}

class gasBike : motorCycle {
    var tankCapacity = 5
    override func makeNoise() {
           print("brrr brrrr")
        }
}

class cruise : boat{
    var capacity = 500
    override func makeNoise() {
           print("buuuuu buuuu")
        }
}