Swift学习之继承

继承

 // 创建一个基础类
class Vehicle {
    var currentSpeed = 0.0
    var description :String {
        return "Traveling at \(currentSpeed) miles per hour"
    }
    func makeNoise(){
        print("eeee") //eeee
    }
}

var vehicle = Vehicle()
print(vehicle.description) //Traveling at 0 miles per hour

//创建一个BiyCle 继承Vehicle
class Bicycle: Vehicle {
    var hasBasket = false
}
let bicycle = Bicycle()
bicycle.currentSpeed = 10
print(bicycle.description) //Traveling at 10 miles per hour

//子类还可以被其他类继承
class Tandem: Bicycle {
    var cunrrentNumberOfPassagers = 0
}
let tandem = Tandem()
tandem.currentSpeed = 100
tandem.cunrrentNumberOfPassagers = 10
tandem.description //Traveling at 100 miles per hour

class Train: Vehicle {
    override func makeNoise() {
        super.makeNoise()  //eeee
        print("choo choo") //choo choo
    }
}
let train = Train()
train.makeNoise() //choo choo

class Car: Vehicle {
    var gear = 1
    final var 轮胎 = true //如果某个属性、方法、下标等不想被子类重写,可以在最前面加final关键字
    override var description:String {
        return super.description + "in gear \(gear)"
    }
}

let car = Car()
car.currentSpeed = 1000
car.gear = 3
print(car.description) //Traveling at 1000 miles per hourin gear 3

class AutomaticCar: Car {
    //override var 轮胎 = false  会出现错误: cannot override with a stored property '轮胎'
    override var currentSpeed:Double {
        didSet{
            gear = Int(currentSpeed / 10.0) + 1
        }
    }
}

var automaticCar = AutomaticCar()
automaticCar.currentSpeed = 1000
print(automaticCar.gear) //101
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值