2013-12-17 09:39:05 -08:00
|
|
|
class A {
|
2013-12-19 07:02:27 -08:00
|
|
|
new(arg) {
|
2014-04-09 07:48:35 -07:00
|
|
|
IO.print("new A ", arg)
|
2013-12-18 07:37:41 -08:00
|
|
|
_field = arg
|
2013-12-17 09:39:05 -08:00
|
|
|
}
|
2013-12-18 07:37:41 -08:00
|
|
|
|
2014-04-03 07:48:19 -07:00
|
|
|
aField { _field }
|
2013-12-17 09:39:05 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class B is A {
|
2013-12-19 07:02:27 -08:00
|
|
|
new(arg1, arg2) {
|
|
|
|
|
super(arg2)
|
2014-04-09 07:48:35 -07:00
|
|
|
IO.print("new B ", arg1)
|
2013-12-18 07:37:41 -08:00
|
|
|
_field = arg1
|
2013-12-17 09:39:05 -08:00
|
|
|
}
|
2013-12-18 07:37:41 -08:00
|
|
|
|
2014-04-03 07:48:19 -07:00
|
|
|
bField { _field }
|
2013-12-17 09:39:05 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class C is B {
|
2013-12-19 07:02:27 -08:00
|
|
|
new {
|
|
|
|
|
super("one", "two")
|
2014-01-05 12:27:12 -08:00
|
|
|
IO.print("new C")
|
2013-12-18 07:37:41 -08:00
|
|
|
_field = "c"
|
2013-12-17 09:39:05 -08:00
|
|
|
}
|
2013-12-18 07:37:41 -08:00
|
|
|
|
2014-04-03 07:48:19 -07:00
|
|
|
cField { _field }
|
2013-12-17 09:39:05 -08:00
|
|
|
}
|
|
|
|
|
|
2013-12-19 07:02:27 -08:00
|
|
|
var c = new C
|
|
|
|
|
// expect: new A two
|
|
|
|
|
// expect: new B one
|
|
|
|
|
// expect: new C
|
2014-01-05 12:27:12 -08:00
|
|
|
IO.print(c is A) // expect: true
|
|
|
|
|
IO.print(c is B) // expect: true
|
|
|
|
|
IO.print(c is C) // expect: true
|
2013-12-18 07:37:41 -08:00
|
|
|
|
2014-01-05 12:27:12 -08:00
|
|
|
IO.print(c.aField) // expect: two
|
|
|
|
|
IO.print(c.bField) // expect: one
|
|
|
|
|
IO.print(c.cField) // expect: c
|