// ëĭ¤ ë¥¸ ĠìĤ¬ìļ©ìŀĲ ĠìłķìĿĺ Ġìľł íĺķ ê³¼ Ġëĭ ¬ ë¦¬ ĠìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ ëĬĶ Ġì§ ģ ìłĳ ĠìĿ¸ ìĬ¤ íĦ´ ìĬ¤ íĻĶ ĠëĲĺ ì§Ģ ĠìķĬ ëĬĶ ëĭ¤ . Ċ // ëĮĢ ìĭł Ġêµ¬ ì²´ ìłģìĿ¸ Ġìľł íĺķ ìĿ´ ĠëĶ° ë¥´ ëĬĶ Ġì² Ń ìĤ¬ ì§Ħ ìĿĦ ĠìłķìĿĺ íķľëĭ¤ . ĠìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ ë¥¼ ĠìĤ¬ìļ© íķĺë©´ Ġêµ¬ ì²´ ìłģìĿ¸ Ġìľł íĺķ ìĿ´ Ġêµ¬íĺĦ íķĺëĬĶ Ġê³µ í Ĩµ ĠìĨį ìĦ± Ġë°ı Ġë©Ķ ìĦľ ëĵľë¥¼ ĠìłķìĿĺ íķł ĠìĪĺ ĠìŀĪëĭ¤ . Ċ // ìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ ìĻĢ Ġëĭ¤ë¥¸ ĠìĤ¬ìļ©ìŀĲ ĠìłķìĿĺ Ġìľł íĺķ ê°Ħ ìĿĺ Ġì£¼ ìļĶ Ġì° ¨ ìĿ´ ìłĲ ìĿĢ ĠìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ ĠìŀĲ ì²´ ê°Ģ Ġìĥģíĥľ ë¥¼ Ġíı¬ íķ¨ íķł ĠìĪĺ ĠìĹĨ ëĭ¤ ëĬĶ Ġê²ĥ ìĿ´ëĭ¤ . ĊĊĊĊ Ċ // Intro ducing Ġinterfaces Ċ interface ĠVehicle Ġ{ Ġ// ìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ ëĬĶ Ġêµ¬íĺĦ ìĿĦ Ġíı¬ íķ¨ íķł ĠíķĦìļĶ ĠìĹĨ ëĭ¤ . Ġì ¦ ī , ĠìĿ¸ ìĬ¤ íĦ´ ìĬ¤ íĻĶ Ġíķł ĠìĪĺ ĠìĹĨ ëĭ¤ . ĠëĮĢ ìĭł Ġëĭ¤ë¥¸ Ġìľł íĺķ ìĿĺ ĠìĨį ìĦ± ê³¼ Ġë©Ķ ìĦľ ëĵľë¥¼ ĠìłķìĿĺ íķł ĠìĪĺ ĠìŀĪëĭ¤ . ĊĠĠĠ Ġfun Ġaccel erate () ĊĠĠĠ Ġfun Ġstop () Ċ } ĊĊĊĊ Ċ // Methods Ġin Ġinterfaces Ċ enum Ġclass ĠDirection Ġ{ ĊĠĠĠ ĠLEFT , ĠRIGHT Ċ } Ċ Ċ interface ĠDirection al Vehicle Ġ{ ĊĠĠĠ Ġfun Ġaccel erate () ĊĠĠĠ Ġfun Ġstop () ĊĠĠĠ Ġfun Ġturn ( direction : ĠDirection ) ĊĠĠĠ Ġfun Ġdescription (): ĠString Ċ } Ċ Ċ interface ĠOptional Direction al Vehicle Ġ{ Ġ// ìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ ìĹĲìĦľ ĠìĦł ìĸ¸ ëĲľ Ġë©Ķ ìĦľ ëĵľ ëĬĶ Ġíģ´ëŀĺìĬ¤ Ġë©Ķ ìĦľ ëĵľ ìĻĢ Ġë§Ī ì° ¬ ê°Ģ ì§Ģ ë¡ľ Ġdefault Ġë§¤ ê°ľ ë³Ģ ìĪĺ ë¥¼ Ġíı¬ íķ¨ íķł ĠìĪĺ ĠìŀĪëĭ¤ . ĊĠĠĠ Ġfun Ġturn ( direction : ĠDirection Ġ= ĠDirection . LEFT ) Ċ } Ċ Ċ // Default Ġmethod Ġimplementations Ċ interface ĠSpace Vehicle Ġ{ Ġ// Java 8 ĠìĹĲ ìĦľ ìĻĢ Ġë§Ī ì° ¬ ê°Ģ ì§Ģ ë¡ľ ĠìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ Ġë©Ķ ìĦľ ëĵľ ìĹĲ ĠëĮĢíķľ Ġê¸°ë³¸ Ġêµ¬íĺĦ ìĿĦ ĠìłķìĿĺ íķł ĠìĪĺ ĠìŀĪëĭ¤ . ĊĠĠĠ Ġ// Swift ìĿĺ ĠProtocol ìĿĦ Ġextension ìľ¼ë¡ľ Ġê¸°ë³¸ Ġêµ¬íĺĦ íķĺëĬĶ Ġê²ĥ ê³¼ Ġë¹Ħ ìĬ · íķĺëĭ¤ . ĊĠĠĠ Ġfun Ġaccel erate () ĊĠĠĠ Ġfun Ġstop () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Wh oa , Ġslow Ġdown !") ĊĠĠĠ Ġ} Ċ } Ċ Ċ // Properties Ġin Ġinterfaces Ċ interface ĠVehicle Properties Ġ{ Ġ// ìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ ìĹĲëĬĶ ĠìĨį ìĦ± ëıĦ ĠìłķìĿĺ íķ´ Ġì¤ Ħ ĠìĪĺ ĠìŀĪëĭ¤ . ĊĠĠĠ Ġval Ġweight : ĠInt Ġ// Ġabstract ĊĠĠĠ Ġval Ġname : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ" Vehicle " Ċ } Ċ // íķĺì§Ģ ë§Į ĠìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ ëĬĶ ĠìŀĲ ì²´ ìłģìľ¼ë¡ľ Ġìĥģíĥľ ë¥¼ Ġìľł ì§Ģ íķł ĠìĪĺ ĠìĹĨ ìľ¼ ë¯ Ģë¡ľ Ġstored Ġproperty ë¥¼ ĠìłķìĿĺ íķł ĠìĪĺ ĠìĹĨ ìľ¼ ë©° , Ġì¶Ķ ìĥģ íĻĶ Ġíķĺ ê±°ëĤĺ Ġcomputed Ġproperty ë¡ľ Ġêµ¬íĺĦ íķ´ìķ¼ Ġíķľëĭ¤ . ĊĊĊĊ Ċ // Interface Ġinheritance Ċ // ëĭ¤ ë¥¸ ĠìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ ë¥¼ Ġìĥģ ìĨį íķĺëĬĶ ĠìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ ë¥¼ ĠìłķìĿĺ íķł ĠìĪĺ ĠìŀĪëĭ¤ . Ġíģ´ëŀĺìĬ¤ ìĹĲìĦľ ìĿĺ Ġìĥģ ìĨį ê³¼ Ġìľł ìĤ¬ íķĺëĭ¤ . Ċ interface ĠW he eled Vehicle : ĠVehicle Ġ{ ĊĠĠĠ Ġval ĠnumberOf Wheel s : ĠInt ĊĠĠĠ Ġvar Ġwheel Size : ĠDouble Ċ } Ċ // W he eled Vehicle ĠìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ ë¥¼ Ġì¤ Ģ ìĪĺ íķĺ ëł¤ ë©´ , ĠW he eled Vehicle ìĿĺ Ġë© ¤ ë²Ħ ìĻĢ ĠVehicle ìĿĺ Ġë© ¤ ë²Ħ ë¥¼ Ġëª¨ ëĳĲ ĠìłķìĿĺ íķ´ìķ¼ Ġíķľëĭ¤ . ĊĊĊĊ Ċ // Implement ing Ġmultiple Ġinterfaces Ċ // íģ ´ë ŀĺìĬ¤ ëĬĶ ĠíķĺëĤĺ ìĿĺ Ġìĥģ ìľĦ Ġíģ´ëŀĺìĬ¤ ë§Į Ġìĥģ ìĨį ë° Ľ ìĿĦ ĠìĪĺ ĠìŀĪëĭ¤ ( ëĭ¨ ìĿ¼ Ġìĥģ ìĨį ). Ġíķĺ ì§Ģë§Į ĠìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ ëĬĶ ĠìĽĲ íķĺëĬĶ Ġë§Į íģ ¼ Ġêµ¬íĺĦ íķ´ Ġì¤ Ħ ĠìĪĺ ĠìŀĪëĭ¤ . Ċ interface ĠW he eled Ġ{ ĊĠĠĠ Ġval ĠnumberOf Wheel s : ĠInt ĊĠĠĠ Ġval Ġwheel Size : ĠDouble Ċ } ĊĊĊĊ Ċ // Interfaces Ġin Ġthe Ġstandard Ġlibrary Ċ // Comparable Ċ // comp arable ìĿĢ ĠìĿ¸ ìĬ¤ íĦ´ ìĬ¤ ë¥¼ Ġëĭ¤ë¥¸ ĠìĿ¸ ìĬ¤ íĦ´ ìĬ¤ ìĻĢ Ġë¹Ħ êµ Ĳ íķĺëĬĶ Ġê² Į ĠìĤ¬ìļ© ëĲĺëĬĶ ĠìĹ° ìĤ° ìŀĲ Ġíķ¨ìĪĺ ë¥¼ ĠìĦł ìĸ¸ íķľëĭ¤ . Ċ interface ĠSized Vehicle Ġ{ ĊĠĠĠ Ġvar Ġlength : ĠInt Ċ } ĊĊĊĊĊĊ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠ Ġ// Intro ducing Ġinterfaces Ċ // ĠĠĠ Ġval Ġvehicle Ġ= ĠVehicle () Ġ// ĠError : ĠInterface ĠVehicle Ġdoes Ġnot Ġhave Ġconstructors ĊĠĠĠ Ġ// ìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ ëĬĶ ĠìĿ¸ ìĬ¤ íĦ´ ìĬ¤ íĻĶ Ġíķł ĠìĪĺ ĠìĹĨ ëĭ¤ . ĠëĮĢ ìĭł ĠìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ ë¥¼ ĠìĤ¬ìļ© íķĺìĹ¬ Ġëĭ¤ë¥¸ Ġìľł íĺķ ìĿĺ ĠìĨį ìĦ± ê³¼ Ġë©Ķ ìĦľ ëĵľë¥¼ ĠìłķìĿĺ íķł ĠìĪĺ ĠìŀĪëĭ¤ . ĊĊĠĠĠ Ġ// Interface Ġsyntax ĊĠĠĠ Ġ// ìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ ëĬĶ Ġclass ĠëĺĲëĬĶ Ġobject ìĹĲìĦľ Ġêµ¬íĺĦ ëĲ ł ĠìĪĺ ĠìŀĪ ìľ¼ ë©° , Ġëĭ¤ë¥¸ Ġìľł íĺķ ìĿ´ ĠìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ ë¥¼ Ġêµ¬íĺĦ íķł ĠëķĮ ĠìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ ìĹĲ ĠìłķìĿĺ ëĲľ ĠìĨį ìĦ± ê³¼ Ġë§¤ ìĦľ ëĵľë¥¼ ĠìłķìĿĺ íķ´ìķ¼ Ġíķľëĭ¤ . ĊĠĠĠ Ġ// íķľ Ġìľł íĺķ ìĿ´ ĠìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ ìĿĺ Ġëª¨ëĵł Ġë© ¤ ë²Ħ ë¥¼ Ġêµ¬íĺĦ íķĺë©´ , ĠìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ ë¥¼ Ġì¤ Ģ ìĪĺ íķľëĭ¤ ( êµ¬ íĺĦ íĸ Īëĭ¤ ) ëĿ¼ ê³ł Ġíķľëĭ¤ . ĊĠĠĠ Ġclass ĠUn ic ycle : ĠVehicle Ġ{ Ġ// Vehicle ìĿĦ Ġêµ¬íĺĦ íķĺëĬĶ Ġíģ´ëŀĺìĬ¤ ĊĠĠĠĠĠĠĠ Ġ// ìĥģ ìĨį ìĿĺ Ġêµ¬ ë¬¸ ê³¼ ĠëıĻ ìĿ¼ íķĺëĭ¤ . ĊĠĠĠĠĠĠĠ Ġvar Ġped d ling Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġaccel erate () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġped d ling Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġstop () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġped d ling Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ë© Ķ ìĦľ ëĵľ Ġêµ¬íĺĦ ìĭľ Ġoverride Ġí Ĥ¤ ìĽĮ ëĵľë¥¼ Ġì į ¨ ì¤ ĺ ìķ¼ Ġíķľëĭ¤ . ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Methods Ġin Ġinterfaces ĊĠĠĠ Ġclass ĠOptional Direction Ġ: ĠOptional Direction al Vehicle Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġturn ( direction : ĠDirection ) Ġ{ Ġ// ìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ ìĹĲ Ġdefault Ġê°Ĵ ìĿ´ Ġì§Ģìłķ ëĲĺìĸ´ ĠìŀĪëĭ¤ . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( direction ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġcar Ġ= ĠOptional Direction () ĊĠĠĠ Ġcar . turn () Ġ// Ġ> ĠLEFT Ġ// ìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ ìĿĺ Ġdefault Ġê°Ĵ ìĿ´ Ġíĺ¸ì¶ľ ëĲľ ëĭ¤ . ĊĠĠĠ Ġcar . turn ( Direction . RIGHT ) Ġ// Ġ> ĠRIGHT ĊĊĠĠĠ Ġ// Default Ġmethod Ġimplementations ĊĠĠĠ Ġclass ĠLight Fre ight er : ĠSpace Vehicle Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġaccel erate () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Pro ceed Ġto Ġhyper space !") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġf alcon Ġ= ĠLight Fre ight er () ĊĠĠĠ Ġf alcon . accel erate () Ġ// Ġ> ĠPro ceed Ġto Ġhyper space ! ĊĠĠĠ Ġf alcon . stop () Ġ// Ġ> Ġ" Wh oa , Ġslow Ġdown ! ĊĠĠĠ Ġ// stop ìĿĢ Ġê¸°ë³¸ ìľ¼ë¡ľ Ġêµ¬íĺĦ ìĿ´ ĠëĲĺ ìĸ´ ĠìŀĪ ê¸° ĠëķĮë¬¸ìĹĲ ĠëĶ° ë¡ľ Ġêµ¬íĺĦ ìĿĦ Ġíķĺ ì§Ģ ĠìķĬ ìķĦ ëıĦ ĠëĲľëĭ¤ . ĊĊĠĠĠ Ġ// íķĺì§Ģ ë§Į ĠíķĦìļĶ íķĺëĭ¤ ë©´ Ġìŀ¬ ìłķ ìĿĺ íķł ĠìĪĺ ëıĦ ĠìŀĪëĭ¤ . ĊĠĠĠ Ġclass ĠStar ship : ĠSpace Vehicle Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġaccel erate () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Warp Ġfactor Ġ 9 Ġplease !") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġstop () Ġ{ Ġ// ê¸° ë³¸ Ġêµ¬íĺĦ ëĲľ Ġstop () ìĿĦ Ġìŀ¬ ìłķ ìĿĺ Ġíķ´ ì¤Ģ ëĭ¤ . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . stop () Ġ// ë°ĺ ëĵľ ìĭľ Ġsuper ë¥¼ Ġíĺ¸ì¶ľ íķ´ìķ¼ ĠíķĺëĬĶ Ġê²ĥ ìĿĢ ĠìķĦ ëĭĪëĭ¤ . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" That Ġkind Ġof Ġh urt !") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġenterprise Ġ= ĠStar ship () ĊĠĠĠ Ġenterprise . accel erate () Ġ// Ġ> ĠW arp Ġfactor Ġ 9 Ġplease ! ĊĠĠĠ Ġenterprise . stop () ĊĠĠĠ Ġ// Ġ> ĠWh oa , Ġslow Ġdown ! ĊĠĠĠ Ġ// Ġ> ĠThat Ġkind Ġof Ġh urt !" ĊĊĠĠĠ Ġ// Properties Ġin Ġinterfaces ĊĠĠĠ Ġclass ĠCar : ĠVehicle Properties Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġweight : ĠInt Ġ= Ġ 1 0 0 0 Ġ// ì¶ Ķ ìĥģ ĠìĨį ìĦ± ìĹĲ Ġê°ĴìĿĦ ĠëĮĢ ìŀħ íķĺ ê±°ëĤĺ , Ġêµ¬íĺĦ ìĿĦ Ġíķł ĠìĪĺ ĠìŀĪëĭ¤ . ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠT ank : ĠVehicle Properties Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġweight : ĠInt Ġ// ì¶ Ķ ìĥģ ĠìĨį ìĦ± ìĹĲ Ġê°ĴìĿĦ ĠëĮĢ ìŀħ íķĺ ê±°ëĤĺ , Ġêµ¬íĺĦ ìĿĦ Ġíķł ĠìĪĺ ĠìŀĪëĭ¤ . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġ 1 0 0 0 0 ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġname : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġ" Tank " ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// ìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ ĠìĨį ìĦ± Ġêµ¬íĺĦ Ġìĭľ ìĹĲëĬĶ Ġoverride Ġí Ĥ¤ ìĽĮ ëĵľë¥¼ Ġì į ¨ ì¤ ĺ ìķ¼ Ġíķľëĭ¤ . ĊĊĊĊĊĠĠĠ Ġ// Interface Ġinheritance ĊĠĠĠ Ġ// ëĭ¤ ë¥¸ ĠìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ ë¥¼ Ġìĥģ ìĨį íķĺëĬĶ ĠìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ ë¥¼ ĠìłķìĿĺ íķł ĠìĪĺ ĠìŀĪëĭ¤ . Ġíģ´ëŀĺìĬ¤ ìĹĲìĦľ ìĿĺ Ġìĥģ ìĨį ê³¼ Ġìľł ìĤ¬ íķĺëĭ¤ . ĊĠĠĠ Ġclass ĠBi ke : ĠW he eled Vehicle Ġ{ Ġ// W he eled Vehicle ĠìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ ë¥¼ Ġì¤ Ģ ìĪĺ íķĺ ëł¤ ë©´ , ĠW he eled Vehicle ìĿĺ Ġë© ¤ ë²Ħ ìĻĢ ĠVehicle ìĿĺ Ġë© ¤ ë²Ħ ë¥¼ Ġëª¨ ëĳĲ ĠìłķìĿĺ íķ´ìķ¼ Ġíķľëĭ¤ . ĊĠĠĠĠĠĠĠ Ġvar Ġped d ling Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġvar Ġbr akes Applied Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġoverride Ġval ĠnumberOf Wheel s Ġ= Ġ 2 Ġ// W he eled Vehicle ĊĠĠĠĠĠĠĠ Ġoverride Ġvar Ġwheel Size Ġ= Ġ 6 2 2 . 0 Ġ// W he eled Vehicle ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġaccel erate () Ġ{ Ġ// Vehicle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġped d ling Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbr akes Applied Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġstop () Ġ{ Ġ// Vehicle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġped d ling Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbr akes Applied Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// íģ ´ë ŀĺìĬ¤ ìĻĢ Ġë§Ī ì° ¬ ê°Ģ ì§Ģ ë¡ľ , Ġìĥģ ìľĦ ĠìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ ìĻĢ Ġíķĺ ìľĦ ĠìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ ëĬĶ Ġis - a Ġê´Ģ ê³Ħ ê°Ģ ĠëĲľëĭ¤ . ĊĊĊĊĊĠĠĠ Ġ// Implement ing Ġmultiple Ġinterfaces ĊĠĠĠ Ġclass ĠTr ic ycle : ĠW he eled , ĠVehicle Ġ{ Ġ// ìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ ëĬĶ Ġëĭ¤ ì¤ĳ Ġêµ¬íĺĦ ìĿ´ Ġê°ĢëĬ¥ íķĺëĭ¤ . ĊĠĠĠĠĠĠĠ Ġ// W he eled ê³¼ ĠVehicle ìĿĦ Ġëª¨ ëĳĲ Ġêµ¬íĺĦ íķ´ Ġì£¼ ë©´ ĠëĲľëĭ¤ . ĊĠĠĠĠĠĠĠ Ġvar Ġped d ling Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġvar Ġbr akes Applied Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval ĠnumberOf Wheel s : ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġ 3 ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġwheel Size : ĠDouble ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġ 1 0 0 . 0 ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġaccel erate () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġped d ling Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbr akes Applied Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġstop () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġped d ling Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbr akes Applied Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĊĊĠĠĠ Ġ// Interfaces Ġin Ġthe Ġstandard Ġlibrary ĊĠĠĠ Ġ// Kotlin Ġíĳľ ì¤Ģ ĠëĿ¼ ìĿ´ ë¸Į ëŁ¬ ë¦¬ ëĬĶ ĠìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ ë¥¼ Ġê ´ ĳ ë² Ķ ìľĦ íķĺê²Į ĠìĤ¬ìļ© íķľëĭ¤ . ĠKotlin ìĹĲìĦľ ĠìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ ë¥¼ Ġìŀ ĺ ĠìĤ¬ìļ© íķĺë©´ , Ġê ¹ ¨ ê¸ ĭ íķĺê²Į Ġë¶Ħ ë¦¬ ëĲľ Ġ" Kotlin y " Ġì½Ķëĵľ ë¥¼ ĠìŀĳìĦ± íķł ĠìĪĺ ĠìŀĪëĭ¤ . ĊĊĠĠĠ Ġ// Iterator ĊĠĠĠ Ġ// Kotlin ìĿĺ Ġë¦¬ ìĬ¤íĬ¸ , Ġë§ µ Ġë°ı Ġëĭ¤ë¥¸ Ġcollection Ġtype ìĿĢ Ġëª¨ ëĳĲ ĠIterator ĠìĿ¸ ìĬ¤ íĦ´ ìĬ¤ ìĹĲ ĠëĮĢíķľ Ġìķ ¡ ìĦ¸ ìĬ¤ ë¥¼ Ġìłľê³µ íķľëĭ¤ . ĊĠĠĠ Ġ// Iterator ëĬĶ ĠKotlin Ġíĳľ ì¤Ģ ĠëĿ¼ ìĿ´ ë¸Į ëŁ¬ ë¦¬ ìĹĲ ĠìłķìĿĺ ëĲľ ĠìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ ìĿ´ ë©° , Ġcollection ìĿĺ Ġëĭ¤ìĿĮ ĠìļĶ ìĨĮ ë¥¼ Ġìłľê³µ íķĺëĬĶ Ġnext () Ġë©Ķ ìĦľ ëĵľ ìĻĢ ĊĠĠĠ Ġ// collection ĠìļĶ ìĨĮ ê°Ģ ĠëįĶ ĠìŀĪëĬĶ Ġì§Ģ ĠìĹ¬ ë¶Ģ ë¥¼ Ġboolean ìľ¼ë¡ľ Ġë°ĺíĻĺ íķĺëĬĶ Ġhas Next () ê°Ģ ĠìŀĪëĭ¤ . ĊĠĠĠ Ġ// Iterator ĠìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ ë¥¼ Ġì¤ Ģ ìĪĺ íķĺ Ġin ĠìĿ Ħ ĠìĤ¬ìļ© íķĺìĹ¬ Ġì» ¬ ëł ī ìħĺ ìĿĦ Ġë°ĺ ë³µ íķł ĠìĪĺ ĠìŀĪëĭ¤ . ĊĠĠĠ Ġval Ġcars Ġ= ĠlistOf (" L amb org h ini ", Ġ" F err ari ", Ġ" Rol ls - Ro y ce ") ĊĠĠĠ Ġval Ġnumbers Ġ= Ġmap Of (" B rad y " Ġto Ġ 1 2 , Ġ" M anning " Ġto Ġ 1 8 , Ġ" Bre es " Ġto Ġ 9 ) ĊĊĠĠĠ Ġfor Ġ( car Ġin Ġcars ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln ( car ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfor Ġ( qb Ġin Ġnumbers ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln ("${ qb . key } Ġwe ars Ġ${ qb . value }") ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// ìĹ¬ ê¸° ìĦľ ĠList ìĻĢ ĠMap ìĿĺ Ġë°ĺ ë³µ ìŀĲ ëĬĶ Ġìķ ½ ê°Ħ ìĿĺ Ġì° ¨ ìĿ´ ê°Ģ ĠìŀĪëĭ¤ . ĠList ëĬĶ ĠCollection ìĿĦ Ġêµ¬íĺĦ íķĺê³ł , ĠCollection ìĿ´ ĠIterable ĠìĿ¸ íĦ° íİ ĺìĿ´ ìĬ¤ ë¥¼ Ġì¤ Ģ ìĪĺ íķľëĭ¤ . ĊĠĠĠ Ġ// ë°ĺ ë©´ , ĠMap ìĹĲëĬĶ Ġextension ìľ¼ë¡ľ Ġiterator Ġíķ¨ìĪĺ ê°Ģ ĠìŀĪëĭ¤ . ĊĊĠĠĠ Ġ// Comparable ĊĠĠĠ Ġ// comp arable ìĿĢ ĠìĿ¸ ìĬ¤ íĦ´ ìĬ¤ ë¥¼ Ġëĭ¤ë¥¸ ĠìĿ¸ ìĬ¤ íĦ´ ìĬ¤ ìĻĢ Ġë¹Ħ êµ Ĳ íķĺëĬĶ Ġê² Į ĠìĤ¬ìļ© ëĲĺëĬĶ ĠìĹ° ìĤ° ìŀĲ Ġíķ¨ìĪĺ ë¥¼ ĠìĦł ìĸ¸ íķľëĭ¤ . ĊĠĠĠ Ġclass ĠBo at Ġ: ĠSized Vehicle , ĠComparable < Bo at > Ġ{ Ġ// Comparable ìĿĦ Ġêµ¬íĺĦ íķľëĭ¤ . ĊĠĠĠĠĠĠĠ Ġoverride Ġvar Ġlength : ĠInt Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcompare To ( other : ĠBo at ): ĠInt Ġ{ Ġ// ëĮĢ ìĨĮ Ġë¹Ħ êµ Ĳ ë¥¼ ĠìłķìĿĺ íķ´ Ġì£¼ ë©´ ĠëĲľëĭ¤ . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlength Ġ> Ġother . length Ġ-> Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlength Ġ== Ġother . length Ġ-> Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// length ìĹĲ ĠëĶ°ëĿ¼ Ġìĥģ ëĮĢ Ġíģ¬ ê¸° ë¥¼ ĠëĤĺ íĥĢ ëĤ´ ëĬĶ ĠInt ë¥¼ Ġë°ĺíĻĺ íķľëĭ¤ . ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġt itan ic Ġ= ĠBo at () ĊĠĠĠ Ġt itan ic . length Ġ= Ġ 8 8 3 ĊĊĠĠĠ Ġval Ġq e 2 Ġ= ĠBo at () ĊĠĠĠ Ġq e 2 . length Ġ= Ġ 9 6 3 ĊĊĠĠĠ Ġprintln ( tit an ic Ġ> Ġq e 2 ) Ġ// Ġ> Ġfalse ĊĠĠĠ Ġ// Comparable ìĿĦ Ġêµ¬íĺĦ íķĺë©´ , Ġë¶Ģ ëĵ ± íĺ¸ ë¡ľ Ġíģ¬ ê¸° ë¥¼ Ġë¹Ħ êµ Ĳ íķł ĠìĪĺ ĠìŀĪëĭ¤ . Ċ }