package Ġtoplevel Object Declarations ĊĊĠ Ġopen Ġclass ĠFoo ( y Ġ: ĠInt ) Ġ{ ĊĠĠĠ Ġopen Ġfun Ġfoo () Ġ: ĠInt Ġ= Ġ 1 ĊĠ Ġ} ĊĊĠ Ġ<! IN AP PL IC ABLE _ C AND ID ATE !> class ĠT Ġ: ĠFoo Ġ{} <! > ĊĊĠ Ġ<! IN AP PL IC ABLE _ C AND ID ATE !> object ĠA <! > Ġ: ĠFoo Ġ{ ĊĠĠĠ Ġval Ġx Ġ: ĠInt Ġ= Ġ 2 ĊĊĠĠĠ Ġfun Ġtest () Ġ: ĠInt Ġ{ ĊĠĠĠĠĠ Ġreturn Ġx Ġ+ Ġfoo () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġobject ĠB Ġ: ĠA Ġ{} ĊĊĠ Ġval Ġx Ġ= ĠA . foo () ĊĊĠ Ġval Ġy Ġ= Ġobject Ġ: ĠFoo ( x ) Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠ Ġx Ġ+ Ġ 1 2 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfoo () Ġ: ĠInt Ġ= Ġ 1 ĊĠ Ġ} ĊĊĠ Ġval Ġz Ġ= Ġy . foo ()