// ĠIG NORE _ BACKEND _ FI R : ĠJVM _ IR Ċ public Ġabstract Ġclass ĠBaseClass () Ġ{ ĊĠĠĠ Ġprotected Ġabstract Ġval Ġkind Ġ: ĠString ĊĊĠĠĠ Ġprotected Ġopen Ġval Ġkind 2 Ġ: ĠString Ġ= Ġ" Ġkind 1 " ĊĊĠĠĠ Ġfun Ġdebug () Ġ= Ġkind Ġ+ Ġkind 2 Ċ } Ċ Ċ public Ġclass ĠSub class Ġ: ĠBaseClass () Ġ{ ĊĠĠĠ Ġoverride Ġval Ġkind Ġ: ĠString Ġ= Ġ" Physical " ĊĊĠĠĠ Ġoverride Ġval Ġkind 2 Ġ: ĠString Ġ= Ġ" Ġkind 2 " Ċ } Ċ Ċ fun Ġbox (): String Ġ= Ġif ( Subclass (). debug () Ġ== Ġ" Physical Ġkind 2 ") Ġ" OK " Ġelse Ġ" fail " Ċ