45 lines
929 B
Plaintext
45 lines
929 B
Plaintext
// from統一構文のテスト
|
|
box Parent {
|
|
init { value }
|
|
|
|
init() { # init構文に統一
|
|
me.value = "Parent value"
|
|
}
|
|
|
|
getValue() {
|
|
return me.value
|
|
}
|
|
|
|
process(x) {
|
|
return "Parent processed: " + x
|
|
}
|
|
}
|
|
|
|
// from構文でデリゲーション
|
|
box Child from Parent {
|
|
init { extra }
|
|
|
|
init() { # init構文に統一
|
|
from Parent.init() # 親コンストラクタ呼び出し
|
|
me.extra = " (Child extra)"
|
|
}
|
|
|
|
// overrideで明示的置換
|
|
override process(x) {
|
|
local result
|
|
result = from Parent.process(x)
|
|
return result + me.extra
|
|
}
|
|
|
|
// 新しいメソッド
|
|
getAll() {
|
|
return me.getValue() + me.extra
|
|
}
|
|
}
|
|
|
|
// テスト実行
|
|
local child
|
|
child = new Child()
|
|
print("getValue: " + child.getValue())
|
|
print("process: " + child.process("test"))
|
|
print("getAll: " + child.getAll()) |