// ĠIG NORE _ BACKEND _ FI R : ĠJVM _ IR Ċ var Ġlog Ġ= Ġ"" Ċ Ċ open Ġclass ĠBase ( val Ġs : ĠString ) Ċ Ċ class ĠA ( s : ĠString ) Ġ: ĠBase ( s ) Ġ{ ĊĠĠĠ Ġconstructor ( i : ĠInt ) Ġ: Ġthis (" O " Ġ+ Ġif Ġ( i Ġ== Ġ 2 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog Ġ+= Ġ" logged 1 ;" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" K " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" fail " ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġconstructor ( i : ĠLong ) Ġ: Ġthis ( if Ġ( i Ġ== Ġ 2 3 L ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlog Ġ+= Ġ" logged 2 ;" ĊĠĠĠĠĠĠĠĠ 2 3 ĊĠĠĠ Ġ} ĊĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠ 4 2 ĊĠĠĠ Ġ}) Ċ } Ċ Ċ class ĠB Ġ: ĠBase Ġ{ ĊĠĠĠ Ġconstructor ( i : ĠInt ) Ġ: Ġsuper (" O " Ġ+ Ġif Ġ( i Ġ== Ġ 2 3 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlog Ġ+= Ġ" logged 3 ;" ĊĠĠĠĠĠĠĠ Ġ" K " ĊĠĠĠ Ġ} ĊĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġ" fail " ĊĠĠĠ Ġ}) Ċ } Ċ Ċ fun Ġbox (): ĠString Ġ{ ĊĠĠĠ Ġvar Ġresult Ġ= ĠA ( 2 3 ). s ĊĠĠĠ Ġif Ġ( result Ġ!= Ġ" OK ") Ġreturn Ġ" fail 1 : Ġ$ result " ĊĊĠĠĠ Ġresult Ġ= ĠA ( 2 3 L ). s ĊĠĠĠ Ġif Ġ( result Ġ!= Ġ" OK ") Ġreturn Ġ" fail 2 : Ġ$ result " ĊĊĠĠĠ Ġresult Ġ= ĠB ( 2 3 ). s ĊĠĠĠ Ġif Ġ( result Ġ!= Ġ" OK ") Ġreturn Ġ" fail 3 : Ġ$ result " ĊĊĠĠĠ Ġif Ġ( log Ġ!= Ġ" logged 1 ; logged 2 ; logged 1 ; logged 3 ; ") Ġreturn Ġ" fail Ġlog : Ġ$ log " ĊĊĠĠĠ Ġreturn Ġ" OK " Ċ }