是否可以防止子類的所有子類訪問 Swift 5 中基類中的變數?請不要迂回協議解決方案。
class A { var a:String = ""}
class B : A {protected var a = ""}
class C : B
{
func use_a()
{
a = //compiler should complain here that 'a' is protected and cannot be modified
}
}
uj5u.com熱心網友回復:
這是可能的,但只能通過使用檔案結構確定成員的范圍。
檔案 1:
class A {
fileprivate var a = ""
}
class B: A {
fileprivate override var a: String {
willSet { }
}
}
檔案2:
class C: B {
var a = 867_5309
func use_a() {
super.a // 'a' is inaccessible due to 'fileprivate' protection level
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/314626.html
下一篇:將派生類存盤到向量C
