package Ġmy demo . kotlin Ċ Ċ /*** Ċ Ġ* Ġ@ author Ġ æł ¾ æ¡ Ĥ æĺİ Ċ Ġ* Ġ@ use Ġ è¿Ļ æĺ¯ä¸Ģä¸ª åħ³äºİ kotlin çļĦ ç±» åĴĮ ç»§æī¿ çļĦ çŁ¥è¯Ĩ çļĦ åŃ¦ä¹ł Ċ Ġ* Ġ@ time ĠĠ 2 0 1 8 Ġå¹´ Ġ 5 Ġ æľĪ Ġ 2 8 Ġ æĹ¥ Ċ Ġ* Ċ Ġ*/ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠ Ġvar Ġperson Ġ= ĠPersonal (" å°ı é»ĳ ") ĊĠĠĠ Ġprintln ( person . f rist name ) Ċ } Ċ Ċ /** Ċ Ġ* Ġ 1 Ġ ç±» Ċ Ġ* ĠåĪĽå»º ç±» ä½¿çĶ¨ çļĦæĺ¯ class Ġ åħ³éĶ®åŃĹ Ċ Ġ* Ġ ç±» åĮħåĲ« çļĦæĺ¯ Ġ ç±»çļĦ ç±» åĲį Ġ Ġ ç±» å¤´ Ġ ç±» ä½ĵ Ċ Ġ* Ġ 2 Ġ æŀĦéĢł åĩ½æķ° Ċ Ġ* Ġkotlin ä¸Ń ä¸Ģä¸ª ç±» åı¯ä»¥ åĮħåĲ« ä¸Ģä¸ª ä¸» æŀĦéĢł åĩ½æķ° ĠåĴĮ å¤ļä¸ª æ¬¡ æŀĦéĢł åĩ½æķ° Ġ ä¸» æŀĦéĢł åĩ½æķ° æĺ¯ ç±» å¤´ çļĦä¸Ģ éĥ¨åĪĨ Ċ Ġ* Ċ Ġ*/ Ċ class ĠInv oc ies Ġ{} Ċ Ċ class ĠEmpty Ċ // Ġå¦Ĥæŀľ ä¸» æŀĦéĢł åĩ½æķ° æ²¡æľī ä»»ä½ķ æ³¨è§£ æĪĸèĢħ åı¯ è§ģ æĢ§ ih ä¿® é¥ ° ç¬¦ ï¼Į åı¯ä»¥ çľģ çķ¥ è¿Ļä¸ª Ġconstructor Ġ åħ³éĶ®åŃĹ ãĢĤ Ċ /*** Ċ Ġ* Ġf rist name Ġ çĽ¸ å½ĵ äºİ æĺ¯ä¸Ģä¸ª å±ŀæĢ§ æĺ¯åľ¨ åĪĽå»º å½ĵåīį çļĦ è¿Ļä¸ª å¯¹è±¡ çļĦæĹ¶åĢĻ ä½¿çĶ¨çļĦ å±ŀæĢ§ Ċ Ġ* Ġkotlin Ġä¸ŃçļĦ ç±» é»ĺè®¤ æĺ¯ final çļĦæĺ¯ ç¦ģ æŃ¢ è¢« ç»§æī¿ çļĦ Ġ Ġå¦Ĥæŀľ æĥ³è¦ģ è¢« ç»§æī¿ Ġ å¿ħé¡» æĺ¾ç¤º çļĦ æ·»åĬł Ġopen Ġ åŃĹæ®µ Ċ Ġ* Ġå¦Ĥæŀľ æ´¾ çĶŁ ç±» æľīä¸Ģä¸ª ä¸» æŀĦéĢł åĩ½æķ° ï¼Į åħ¶ åŁº ç±»åŀĭ åı¯ä»¥ ï¼Ī å¹¶ä¸Ķ å¿ħé¡» ï¼ī ĠçĶ¨ åŁº ç±»çļĦ ä¸» æŀĦéĢł åĩ½æķ° åıĤæķ° å°± åľ° åĪĿå§ĭåĮĸ ãĢĤ Ċ Ġ* Ġå¦Ĥæŀľ ç±» æ²¡æľī ä¸» æŀĦéĢł åĩ½æķ° ï¼Į éĤ£ä¹Ī æ¯ıä¸ª æ¬¡ æŀĦéĢł åĩ½æķ° å¿ħé¡» ä½¿çĶ¨ Ġsuper Ġ åħ³éĶ®åŃĹ åĪĿå§ĭåĮĸ åħ¶ åŁº ç±»åŀĭ ï¼Į æĪĸ å§Ķ æīĺ ç»Ļ åı¦ ä¸Ģä¸ª æŀĦéĢł åĩ½æķ° åģļ åĪ° è¿Ļä¸Ģ çĤ¹ ãĢĤ Ġ æ³¨æĦı ï¼Į åľ¨ è¿Ļç§į æĥħåĨµä¸ĭ ï¼Į ä¸įåĲĮçļĦ æ¬¡ æŀĦéĢł åĩ½æķ° åı¯ä»¥ è°ĥçĶ¨ åŁº ç±»åŀĭçļĦ ä¸įåĲĮçļĦ æŀĦéĢł åĩ½æķ° ï¼ļ Ċ Ġ*/ Ċ open Ġclass ĠPersonal Ġconstructor ( f rist name : ĠString ) Ġ{ ĊĠĠĠ Ġ// å£°æĺİ ä¸Ģä¸ª åıĺéĩı ĠĠĠ Ġå±ŀæĢ§ åı¯ä»¥åľ¨ ç±» ä½ĵ ĠåĴĮ å±ŀæĢ§ åĪĿå§ĭåĮĸ åĻ¨ ä¸Ń ä½¿çĶ¨ ĊĠĠĠ Ġvar Ġf rist name : ĠString Ġ= Ġ" this Ġis Ġthe Ġf rist name " Ġ+ Ġf rist name ĊĊĠĠĠ Ġ// Ġå±ŀæĢ§ åĪĿå§ĭåĮĸ çļĦ æĵįä½ľ å¿ħé¡» åľ¨ è¿Ļä¸ª init åĪĿå§ĭåĮĸ åĿĹ ä¸Ń è¿Ľè¡Į ĊĠĠĠ Ġinit Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġ è¿ĻéĩĮ æī§è¡Į çļĦæĺ¯ å±ŀæĢ§ åĪĿå§ĭåĮĸ çļĦ æĵįä½ľ ĊĠĠĠĠĠĠĠ Ġprintln (" å½ĵåīį çļĦæķ°æį® æĺ¯ Ġ$ f rist name ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** * ĊĠĠĠĠ Ġ* Ġ çĪ¶ ç±» ä¸ŃçļĦ åĩ½æķ° æ²¡æľī æ·»åĬł Ġopen Ġ åŃĹæ®µ æĺ¯ ä¸į åı¯ä»¥åľ¨ ä¹ĭ ç±» ä¸Ń å®ļä¹ī çĽ¸åĲĮ çļĦ åĲįç§° çļĦ åĩ½æķ° çļĦ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun ĠgetName (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" this Ġis Ġmy Ġname Ġ@$ f rist name " ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ // ĠåĪĽå»º å¯¹è±¡çļĦ ç®ĢåįķçļĦ è¯Ńæ³ķ Ġ Ġåľ¨ åĪĽå»º çļĦ åĲĮæĹ¶ å£°æĺİ å±ŀæĢ§ Ġ åĲĮæĹ¶ è¿Ľè¡Į åĪĿå§ĭåĮĸ Ċ class ĠPersonal 1 Ġconstructor ( val Ġname : ĠString , Ġval Ġage : ĠInt , Ġval Ġgender : ĠString ) Ċ Ċ /*** Ċ Ġ* Ġkotlin Ġä¸Ń ç±»çļĦ ç»§æī¿ Ċ Ġ**/ Ċ Ċ class Ġdata Class ( f rist name : ĠString ) Ġ: ĠPersonal ( f rist name ) Ġ{ ĊĠĠĠ Ġ// Ġ åŃĲ ç±» éĩį åĨĻ çĪ¶ ç±» çļĦæĸ¹æ³ķ å¿ħé¡» æ·»åĬł override åħ³éĶ®åŃĹ Ġ åĲ¦åĪĻ ä¼ļ æĬ¥éĶĻ Ġ Ġå¦Ĥæŀľ ä¸į æĥ³ è®© ä½łçļĦ åŃĲ ç±» è¦ĨçĽĸ Ċ // ĠĠ Ġ ä½łåı¯ä»¥ åľ¨ æ·»åĬł Ġfinal Ġ åħ³éĶ®åŃĹ ĊĠĠĠ Ġoverride Ġfun ĠgetName (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . getName () ĊĠĠĠ Ġ} Ċ } Ċ Ċ open Ġclass ĠFoo Ġ{ ĊĠĠĠ Ġ// ĠĠĠ Ġopen Ġ åħ³éĶ®åŃĹ æłĩè¯Ĩ çļĦ åŃĹæ®µ æĺ¯ åı¯ä»¥ è¢« è¦ĨçĽĸ çļĦ ĊĠĠĠ Ġopen Ġval Ġx : ĠInt Ġget () Ġ= Ġ 1 2 ĊĊĠĠĠ Ġopen Ġfun Ġf (){ ĊĠĠĠĠĠĠĠ Ġprintln (" Foo . f () ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ /*** Ċ Ġ* Ġåľ¨ ä¹ĭ ç±» ä¸Ń è°ĥçĶ¨ çĪ¶ ç±»çļĦ å®ŀçİ° Ċ Ġ* Ġåľ¨ ä¸Ģä¸ª åĨħéĥ¨ ç±» ä¸Ń è®¿éĹ® å¤ĸéĥ¨ ç±»çļĦ è¶ħ ç±» Ġåı¯ä»¥ éĢļè¿ĩ Ġ Ġsuper @ Outer å®ŀçİ° Ċ Ġ*/ Ċ class ĠBar 1 Ġ: ĠFoo () Ġ{ ĊĠĠĠ Ġ// ĠĠĠ ĠéĢļè¿ĩ override åħ³éĶ®åŃĹ å¯¹ çĪ¶ ç±»çļĦ åŃĹæ®µ è¿Ľè¡Į è¦ĨçĽĸ ĊĠĠĠ Ġoverride Ġval Ġx : ĠInt Ġ= Ġ 2 3 ĊĊĠĠĠĠ Ġoverride Ġfun Ġf () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . f () ĊĠĠĠĠĠĠĠĠ Ġprintln (" Bar . f () ") ĊĠĠĠ Ġ} Ċ } ĊĊ