2013-12-17 17:39:05 +00:00
|
|
|
class A {
|
2015-07-21 14:24:53 +00:00
|
|
|
construct new(arg) {
|
2015-11-11 15:55:48 +00:00
|
|
|
System.print("new A %(arg)")
|
2013-12-18 15:37:41 +00:00
|
|
|
_field = arg
|
2013-12-17 17:39:05 +00:00
|
|
|
}
|
2013-12-18 15:37:41 +00:00
|
|
|
|
2014-04-03 14:48:19 +00:00
|
|
|
aField { _field }
|
2013-12-17 17:39:05 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class B is A {
|
2015-07-21 14:24:53 +00:00
|
|
|
construct new(arg1, arg2) {
|
2013-12-19 15:02:27 +00:00
|
|
|
super(arg2)
|
2015-11-11 15:55:48 +00:00
|
|
|
System.print("new B %(arg1)")
|
2013-12-18 15:37:41 +00:00
|
|
|
_field = arg1
|
2013-12-17 17:39:05 +00:00
|
|
|
}
|
2013-12-18 15:37:41 +00:00
|
|
|
|
2014-04-03 14:48:19 +00:00
|
|
|
bField { _field }
|
2013-12-17 17:39:05 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class C is B {
|
2015-07-21 14:24:53 +00:00
|
|
|
construct new() {
|
2013-12-19 15:02:27 +00:00
|
|
|
super("one", "two")
|
2015-09-15 14:46:09 +00:00
|
|
|
System.print("new C")
|
2013-12-18 15:37:41 +00:00
|
|
|
_field = "c"
|
2013-12-17 17:39:05 +00:00
|
|
|
}
|
2013-12-18 15:37:41 +00:00
|
|
|
|
2014-04-03 14:48:19 +00:00
|
|
|
cField { _field }
|
2013-12-17 17:39:05 +00:00
|
|
|
}
|
|
|
|
|
|
2015-07-10 16:18:22 +00:00
|
|
|
var c = C.new()
|
2013-12-19 15:02:27 +00:00
|
|
|
// expect: new A two
|
|
|
|
|
// expect: new B one
|
|
|
|
|
// expect: new C
|
2015-09-15 14:46:09 +00:00
|
|
|
System.print(c is A) // expect: true
|
|
|
|
|
System.print(c is B) // expect: true
|
|
|
|
|
System.print(c is C) // expect: true
|
2013-12-18 15:37:41 +00:00
|
|
|
|
2015-09-15 14:46:09 +00:00
|
|
|
System.print(c.aField) // expect: two
|
|
|
|
|
System.print(c.bField) // expect: one
|
|
|
|
|
System.print(c.cField) // expect: c
|