swift基础day5---继承

本文展示了面向对象编程中的继承概念,通过`Transpotation`基类及其子类`Car`, `Boat`, `Airplane`的实例,说明了如何实现行驶和加油的方法。同时,还讨论了`final`关键字在属性和类上的应用,强调其不可被子类覆写或继承的特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//继承 Inheritance
class Transpotation {
    var petrol: Int = 10  //油量
    //行驶
    func drive() {
        //具体由子类实现
        if petrol == 0 {
            self.addPetrol()
        }
    }
    //加油
    func addPetrol() {
        petrol += 10
    }
}

//子类
class Car: Transpotation {
    var tyre: Int
    override func drive() {
        super.drive()
        print("在路上行驶10km")
        self.petrol -= 1
    }
    init(tyrecount: Int){
        tyre = tyrecount
    }
}
class Boat:Transpotation {
    var floor: Int
    override func drive() {
        super.drive()
        print("在海上行驶 50 km")
        self.petrol -= 2
    }
    init(floorCount: Int) {
        floor = floorCount
    }
}
class Airplane: Transpotation {
    var height: Int
    override func drive() {
        super.drive()
        print("在天上行驶 100km")
        self.petrol -= 5
    }
    init(height: Int) {
        self.height = height
    }
}
//汽车
var car = Car(tyrecount: 4)
var boat = Boat(floorCount: 3)
var plane = Airplane(height: 3000)
car.drive()
boat.drive()
plane.drive()

//final修饰的属性方法不能被子类覆写,修饰类不能被继承
class Shape {
    final var center: (Double,Double)
    init(){
        center = (0, 0)
    }
}
final class Shape1 {
    final var center: (Double,Double)
    init(){
        center = (0, 0)
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值