package Ġexamples Ċ Ċ // Ġsealed Ġclasses Ġare Ġused Ġto Ġrestrict Ġclass Ġh ierarch ies Ċ // ĠThe Ġbehavior Ġis Ġsimilar Ġto Ġ" Enums " Ċ Ċ fun Ġsealed Classes Example () Ġ{ ĊĠĠĠ Ġprintln (""" ĊĠĠĠ Ġ. ----- . -------------------------------------------------------------------------------- -- . ĊĠĠĠ Ġ| ĠĠ 1 6 Ġ| ĠSe aled ĠClasses ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ Ġ| ĊĠĠĠ Ġ' ----- ' -------------------------------------------------------------------------------- -- ' ĊĠĠĠ Ġ""" . trim Indent ()) ĊĊĠĠĠ Ġ// Ġobserve Ġthe Ġsimilar Ġbehavior Ġto ĠEnums Ġbut Ġwith Ġadditional Ġparameter - access Ġfunctionality ĊĠĠĠ Ġmessaging Handler ( Messaging Event . Sent Event ( 1 8 9 0 , Ġ" john . doe @ example . com ")) ĊĠĠĠ Ġmessaging Handler ( Messaging Event . Received Event ( 1 9 1 0 , Ġ" adam . smith @ example . com ")) ĊĠĠĠ Ġmessaging Handler ( Messaging Event . Error Event ( 5 6 7 8 , Ġ" Not Ġconnected Ġto Ġnetwork ")) Ċ } Ċ Ċ sealed Ġclass ĠMessaging Event Ġ{ ĊĠĠĠ Ġclass ĠSent Event ( val ĠmessageId : ĠInt , Ġval Ġto : ĠString ): ĠMessaging Event () ĊĠĠĠ Ġclass ĠReceived Event ( val ĠmessageId : ĠInt , Ġval Ġfrom : ĠString ): ĠMessaging Event () ĊĠĠĠ Ġclass ĠError Event ( val ĠmessageId : ĠInt , Ġval Ġlog : ĠString ): ĠMessaging Event () Ċ } Ċ // Ġto Ġaccess Ġa Ġsealed Ġclass , Ġwe Ġusually Ġuse Ġ' when ' Ċ fun Ġmessaging Handler ( e : ĠMessaging Event ) Ġ= ĊĠĠĠ Ġwhen ( e ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠMessaging Event . Sent Event Ġ-> Ġprintln ("[ ID : Ġ${ e . message Id }] ĠMessage Ġsent Ġto Ġ${ e . to }") ĊĠĠĠĠĠĠĠ Ġis ĠMessaging Event . Received Event Ġ-> Ġprintln ("[ ID : Ġ${ e . message Id }] ĠMessage Ġreceived Ġfrom Ġ${ e . from }") ĊĠĠĠĠĠĠĠ Ġis ĠMessaging Event . Error Event Ġ-> Ġprintln ("[ ID : Ġ${ e . message Id }] ĠMessage Ġerror Ġwith Ġlog : Ġ${ e . log }") ĊĠĠĠ Ġ}