的错误信息是非常明确的:
Overriding instance method must be as accessible as the declaration it overrides.
这意味着方法不能比的方法,其较低的访问级别覆盖。
例如给出这个类:
public class Superclass {
internal func doSomething() {
...
}
}
不能然后覆盖doSomething
与比interal
较少访问的方法。例如
public class Subclass : Superclass {
// error
private override func doSomething() {
}
}
但是,您可以覆盖一个方法,使之更加访问:
public class Subclass : Superclass {
public override func doSomething() {
// You can even call the internal method in the superclass
super.doSomething()
}
}
的reference documentation有很多细节上的这一点,但似乎离开这个关系的意义。
我认为覆盖访问控制级别不能低于类级别和方法级别之间的最低级别。 – Dennis