我有 Slider 类。其中幻灯片数组[Advertisement]。现在我创建了 sliderForFood,它必须滑动食物数组 [Food]。我怎样才能用食品 [FOOD] 变种覆盖我的广告 [Advertisement] 变种。
class SliderADV {
var arrayAdvertisements: [Advertisement] = [Advertisement]()
}
class SliderForFood: SliderADV {
var arrayFood:[Food] = [Food]()
override var arrayAdvertisements: [Advertisement]{
get {
return arrayFood
}
set{
if newValue is [ArrayFood]{
self.arrayAdvertisement = newValue
}
}
}
}
最佳答案
继承基本上意味着“是一种”。你是说“食物 slider 是一种广告 slider ”这对我来说没有意义。
IMO,你应该创建一个这样的协议(protocol):
protocol Slider {
associatedtype ThingToSlide
var things: [ThingToSlide] { get set }
}
然后你有你的两个 slider 类符合它:
class SliderForAds : Slider {
typealias ThingToSlide = Advertisment
var things: [Advertisment] = [Advertisment]()
}
class SliderForFood : Slider {
typealias ThingToSlide = Food
var things: [Food] = [Food]()
}
关于swift - 如何覆盖子类中的数组 var?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41757268/