gpt4 book ai didi

swift - 无法更改对象的协议(protocol)一致性

转载 作者:行者123 更新时间:2023-11-28 09:44:24 27 4
gpt4 key购买 nike

<分区>

代码中,WheeledVehicle是协议(protocol),Bike类符合这两个协议(protocol)

protocol Wheeled {
var numberOfWheels: Int { get }
}

protocol Vehicle {
var maker: String { get }
var owner: String {get set}
var ownerKid: String { get }
}


class Bike: Vehicle, Wheeled {
let numberOfWheels: Int = 0
var ownerKid: String = "Junior"

var maker: String {
return "Ford"
}

var owner: String {
get {
return "Bob"
}
set {
ownerKid = "\(newValue) Junior"
}
}
}

let bike: Bike = Bike()

var theBike: Vehicle = bike // #1
var theBike: Wheeled = bike // #2 error: invalid redeclaration of 'theBike'

当我检查theBike 的属性时,在#1 中,theBike 对象只有符合Vehicle 协议(protocol)的属性;而在 #2 中,theBike 对象仅具有符合 Wheeled 属性的属性

因此,我觉得#1 和#2 中的theBike 是不同的,为什么它告诉我重新声明无效?

问题:我应该如何更改对象的协议(protocol)一致性?或者是否允许更改对象的一致性?

感谢您的宝贵时间和帮助。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com