package ĠBas ics . Section 2 ĊĊ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĊĠĠĠ Ġ// ĠWe Ġcan Ġcreate Ġan Ġobject Ġof Ġa Ġclass Ġbut Ġwe Ġcan 't Ġdo Ġfor Ġinterfaces . ĊĠĠĠ Ġval Ġremote : ĠRemote Ġ= ĠTV () ĊĠĠĠ Ġremote . power On () ĊĠĠĠ Ġremote . power Off () ĊĠĠĠ Ġremote . about () ĊĠĠĠ Ġremote . brand Ġ= Ġ" Sans ui " ĊĠĠĠ Ġprint ( remote . brand ) Ċ } Ċ Ċ // ĠAll Ġthe Ġfunctions Ġin Ġinterface Ġare Ġabstract Ġby Ġnature . Ċ interface ĠRemote Ġ{ ĊĊĠĠĠ Ġvar Ġbrand : ĠString Ġ// Ġin Ġinterface Ġall Ġthe Ġproducts Ġis Ġabstract Ġby Ġnature , Ġyou Ġcan Ġnot Ġinstantiate ĊĊĠĠĠ Ġ// If Ġwe Ġdon 't Ġdefine Ġa Ġfunction Ġbody Ġ, that Ġfunction Ġis Ġabstract Ġby Ġnature ĊĊĠĠĠ Ġfun Ġpower On () Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpower Off () Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġif Ġyou Ġwrite Ġcode Ġinside Ġthe Ġfunction Ġit Ġbecame ĠOPEN Ġand Ġwe Ġcan Ġoverride Ġin Ġclass Ġthat Ġwe Ġused Ġthis Ġinterface ĊĠĠĠ Ġfun Ġabout () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" I Ġam ĠRemote Ġinterface ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠTV : ĠRemote Ġ{ ĊĊĠĠĠ Ġoverride Ġvar Ġbrand : ĠString Ġ= Ġ" Tv ĠRemote ĠBrand " ĊĊĠĠĠ Ġoverride Ġfun Ġpower On () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . power On () ĊĠĠĠĠĠĠĠ Ġprintln (" Power ĠOn ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// ĠCode ĠHere ĊĊĠĠĠ Ġoverride Ġfun Ġpower Off () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . power Off () ĊĠĠĠĠĠĠĠ Ġprintln (" Power ĠOff ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġabout () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . about () ĊĠĠĠĠĠĠĠ Ġprintln (" I Ġam Ġa ĠTV ") ĊĠĠĠ Ġ} Ċ Ċ }