我想我明白了你的意思。您创建一个
base类,实现一个初始化程序和一个类(静态)函数:
class base { class func dummyDict() -> Dictionary<String, String> { return ["base1": "val1"] } init() { for (key, value) in self.dynamicType.dummyDict() { println("encoding (value) for key (key)") } }}接下来,您要创建子类,并让初始化程序调用该
dummyDict方法的重写版本。您只需要重写该方法即可:
class Subclass1 : base { override class func dummyDict() -> Dictionary<String, String> { return ["subclass1": "sub1"] }}现在,当您创建的实例时
Subclass1,显示的内容是:
encoding sub1 for key subclass1
这是预期的输出。
请注意,
for初始化程序中的循环正在使用
self.dynamicType.dummyDict()而不是
base.dummyDict()。后者总是调用在类中定义的类方法
base,而前者则在从继承的实际类的范围内调用它
base



