以下のコードのスーパークラスのコンピューテッドプロパティやプロパティオブザーバーの可視化をサブクラスで書き換えるという点について確認させてください。
僕の認識ではクラスBの最初のoverrideの意味はこのクラスでは(サブクラスでは)num1をinternalとして扱い値を変更後、文字列"newValue"を出力するという事なのですが合っているでしょうか?
またクラスBの二番目のoverrideはnum2のgetをinternalにし、setをprivateとして参照時1を足してを出力し変更時に変更する値を代入する、でよろしいでしょうか?
それと疑問に思った事があるのですが二番目のoverrideでsetは明示するのになぜgetはinternal(get)と書かないのでしょうか?
長文になってしまい申し訳ありません。回答お待ちしています。
class A {
private var num1 = 1
private var num2 = 2
}
class B: A {
override internal var num1: Int {
didSet {
print("newValue")
}
}
override internal private(set) var num2: Int {
get { return self.num2 + 1 }
set { self.num2 = newValue }
}
}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/25 01:45