interface ĠSound Behavior Ġ{ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 1 ĊĠĠĠ Ġfun Ġmake Sound () Ċ } Ċ Ċ class ĠSc ream Behavior ( val Ġn : String ): ĠSound Behavior Ġ{ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 2 ĊĠĠĠ Ġoverride Ġfun Ġmake Sound () Ġ= Ġprintln ("${ n . toUpperCase ()} Ġ!!! ") Ċ } Ċ Ċ class ĠR ock And Roll Behavior ( val Ġn : String ): ĠSound Behavior Ġ{ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 2 ĊĠĠĠ Ġoverride Ġfun Ġmake Sound () Ġ= Ġprintln (" I 'm ĠThe ĠKing Ġof ĠR ock Ġ' N ' ĠRoll : Ġ$ n ") Ċ } Ċ Ċ // ĠTom ĠAr aya Ġis Ġthe Ġ" sing er " Ġof ĠS layer Ċ class ĠTom Ar aya ( n : String ): ĠSound Behavior Ġby ĠSc ream Behavior ( n ) ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 3 Ċ Ċ // ĠYou Ġshould Ġknow Ġ;) Ċ class ĠEl vis Pres ley ( n : String ): ĠSound Behavior Ġby ĠR ock And Roll Behavior ( n ) ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 3 Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġval Ġtom Ar aya Ġ= ĠTom Ar aya (" Th r ash ĠMet al ") ĊĠĠĠ Ġtom Ar aya . make Sound () ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 4 ĊĠĠĠ Ġval Ġel vis Pres ley Ġ= ĠEl vis Pres ley (" D anc in ' Ġto Ġthe ĠJ ail house ĠR ock .") ĊĠĠĠ Ġel vis Pres ley . make Sound () Ċ }