所有子类都有一个静态函数update
,我必须为每个子类调用它们:
class subClass1 {
static func update() { ... }
}
subClass1.update()
subClass2.update()
subClass3.update()
我希望我可以构造一个数组来存储它们并像这样调用它们:
let allSubClasses: [baseClass.Type] = [
subClass1.self,
subClass2.self,
subClass3.self,
]
for var i=0; i<allSubClasses.count; ++i {
allSubClasses[i].update() // something like this, how to achieve it?
}
如何正确地做到这一点?
答案 0 :(得分:2)
给定基类
class Animal {
class func update() { }
}
和2个子类
class Dog: Animal { }
class Cat: Animal { }
这是创建类类型数组的方法
let animals: [Animal.Type] = [Dog.self, Cat.self]
这就是你调用update
static 类函数的方法
for animal in animals {
animal.update()
}
答案 1 :(得分:1)
你是怎么做到的。将其声明为类方法,
fs.readFile(this.directory + file, 'utf8', (err, data) => {
//data is BO1_�G���g�����X
});
我猜你有把它作为静态来使你的方法成为最终的,所以你不能在你的基类中覆盖它。