的錯誤信息是非常明確的:
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