Swift 继承

基类

import UIKit

// 基类
class Vehicle {
    var currentSpeed = 0.0
    var description: String {
        return "traveling at \(currentSpeed) miles per hour"
    }
    
    func makeNoise() {
        
    }
}

let SomeVehicle = Vehicle()
print("Vehicle: \(SomeVehicle.description)")

console log 如下


定义基类.png

子类

// 子类
class Bicycle: Vehicle {
    var hasBasket = false
}

let bicycle = Bicycle()
bicycle.hasBasket = true
bicycle.currentSpeed = 15.0
print("Bicycle: \(bicycle.description)")

class Tandem: Bicycle {
    var currentNumberOfPassengers = 0
}

let tandem = Tandem()
tandem.hasBasket = true
tandem.currentNumberOfPassengers = 2
tandem.currentSpeed = 22.0
print("Tandem: \(tandem.description)")

console log 如下


定义子类.png

重写方法

// 重写方法
class Train: Vehicle {
    override func makeNoise() {
        print("Choo Choo")
    }
}

let train = Train()
train.makeNoise()

console log 如下


重写方法.png

重写计算属性

// 重写计算属性
class Car: Vehicle {
    var gear = 1
    override var description: String {
        return super.description + " in gear \(gear)"
    }
}

let car = Car()
car.currentSpeed = 25.0
car.gear = 3
print("Car: \(car.description)")

console log 如下


重写计算属性.png

重写属性监听

// 重写属性监听
class AutomaticCar: Car {
    override var currentSpeed: Double {
        didSet {
            gear = Int(currentSpeed / 10.0) + 1
        }
    }
}

let automic = AutomaticCar()
automic.currentSpeed = 35.0
print("AutomaticCar: \(automic.description)")

console log 如下


重写属性监听.png

注意: 用final 关键字来阻止重写

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 继承我们可以理解为一个类获取了另外一个类的方法和属性。 当一个类继承其它类时,继承类叫子类,被继承类叫超类(或父类...
    零度_不结冰阅读 303评论 0 0
  •  一个类可以继承另外一个类的方法、属性和其他特性。当一个类继承其他类时,继承类叫子类,被继承类叫父类。 在swif...
    EndEvent阅读 918评论 3 3
  • 1. Swift继承\super关键字\override关键字\final关键字 继承语法 继承是面向对象最显著的...
    高俊阅读 870评论 1 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,923评论 18 139
  • 基类(任何不从另一个类继承的类都是所谓的基类。) 子类 重写(override) 重写方法 重写属性 重写属性观察...
    风___________阅读 131评论 0 0