interface ĠA < T , ĠU > Ġ{ ĊĠĠĠ Ġfun Ġfoo ( t : ĠT , Ġu : ĠU ) Ġ= Ġ" A " Ċ } Ċ Ċ class ĠZ < T > Ġ: ĠA < T , ĠInt > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġfoo ( t : ĠT , Ġu : ĠInt ) Ġ= Ġ" Z " Ċ } Ċ Ċ fun Ġbox (): ĠString Ġ{ ĊĠĠĠ Ġval Ġz Ġ= ĠZ < Int >() ĊĠĠĠ Ġval Ġa : ĠA < Int , ĠInt > Ġ= Ġz ĊĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġz . foo ( 0 , Ġ 0 ) Ġ!= Ġ" Z " Ġ-> Ġ" Fail Ġ# 1 " ĊĠĠĠĠĠĠĠ Ġa . foo ( 0 , Ġ 0 ) Ġ!= Ġ" Z " Ġ-> Ġ" Fail Ġ# 2 " ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ" OK " ĊĠĠĠ Ġ} Ċ } Ċ