phase: 20.49 COMPLETE; 20.50 Flow+String minimal reps; 20.51 selfhost v0/v1 minimal (Option A/B); hv1-inline binop/unop/copy; docs + run_all + CURRENT_TASK -> 21.0
This commit is contained in:
45
tests/development/test_from_syntax.hako
Normal file
45
tests/development/test_from_syntax.hako
Normal file
@ -0,0 +1,45 @@
|
||||
// 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())
|
||||
Reference in New Issue
Block a user