class ĠMy Class Ġ{ ĊĠĠĠ Ġfun Ġtest () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Class Ġwith Ġmultiple Ġconstructors ") ĊĠĠĠĠĠĠĠ Ġval Ġfr ank Ġ= ĠPerson (" Fr ank ", Ġ" S ", Ġ" W atson ") ĊĠĠĠĠĠĠĠ Ġprintln ( fr ank . fullName ()) ĊĊĠĠĠĠĠĠĠ Ġprintln ("") ĊĠĠĠĠĠĠĠ Ġprintln (" Inheritance ") ĊĠĠĠĠĠĠĠ Ġval Ġwood Ġ= ĠStudent (" K ent ", Ġ" W ood ") ĊĠĠĠĠĠĠĠ Ġprintln ( wood . fullName ()) ĊĊĠĠĠĠĠĠĠ Ġvar Ġbar 1 Ġ= ĠBar 1 ( 0 ) ĊĠĠĠĠĠĠĠ Ġvar Ġbar 2 Ġ= ĠBar 2 () ĊĊĠĠĠĠĠĠĠ Ġprintln ("") ĊĠĠĠĠĠĠĠ Ġprintln (" Inheritance Ġ( Child Ġ-> ĠParent Ġ-> ĠG rand parent )") ĊĠĠĠĠĠĠĠ Ġprintln (" 0 . ĠInitial ise ĠChild ") ĊĠĠĠĠĠĠĠ Ġval Ġchild Ġ= ĠChild (" memo 1 ") ĊĠĠĠĠĠĠĠ Ġprintln (" 1 . ĠOverride Ġfunction Ġin ĠChild ") ĊĠĠĠĠĠĠĠ Ġchild . f () ĊĠĠĠĠĠĠĠ Ġprintln (" 2 . ĠInherit ed Ġfunction Ġfrom ĠParent ") ĊĠĠĠĠĠĠĠ Ġchild . g () ĊĠĠĠĠĠĠĠ Ġprintln (" 3 . ĠCall Ġboth Ġsuper Ġand Ġoverride Ġfunction Ġin ĠChild ") ĊĠĠĠĠĠĠĠ Ġchild . h () ĊĠĠĠĠĠĠĠ Ġprintln (" 4 . ĠCall Ġboth Ġsuper Ġand Ġoverride Ġfunction Ġin Ġinner ĠClass Ġof ĠParent ") ĊĠĠĠĠĠĠĠ Ġval Ġparent Ġ= ĠParent (" memo 2 ") ĊĠĠĠĠĠĠĠ Ġval Ġcol league Ġ= Ġparent . Col league () ĊĠĠĠĠĠĠĠ Ġcol league . g () ĊĊĠĠĠĠĠĠĠ Ġprintln ("") ĊĠĠĠĠĠĠĠ Ġprintln (" Res olving Ġoverriding Ġconflicts ") ĊĠĠĠĠĠĠĠ Ġval Ġc Ġ= ĠC () ĊĠĠĠĠĠĠĠ Ġc . foo () ĊĠĠĠĠĠĠĠ Ġc . bar () ĊĠĠĠĠĠĠĠ Ġprintln (" ---- ") ĊĠĠĠĠĠĠĠ Ġval Ġd Ġ= ĠD () ĊĠĠĠĠĠĠĠ Ġd . foo () ĊĠĠĠĠĠĠĠ Ġd . bar () ĊĠĠĠ Ġ} Ċ } Ċ Ċ open Ġclass ĠPerson Ġ{ ĊĊĠĠĠ Ġvar ĠfirstName : ĠString Ġ= Ġ"" ĊĠĠĠ Ġvar Ġmiddle Name : ĠString Ġ= Ġ"" ĊĠĠĠ Ġvar ĠlastName : ĠString Ġ= Ġ"" ĊĊĠĠĠ Ġconstructor ( firstName : ĠString , ĠlastName : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . firstName Ġ= ĠfirstName ĊĠĠĠĠĠĠĠ Ġthis . lastName Ġ= ĠlastName ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( firstName : ĠString , Ġmiddle Name : ĠString , ĠlastName : ĠString ) Ġ: Ġthis ( firstName , ĠlastName ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . middle Name Ġ= Ġmiddle Name ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar ĠfullName : Ġ() Ġ-> ĠString Ġ= Ġ{ ĊĠĠĠĠĠĠĠ Ġ"$ firstName Ġ$ middle Name Ġ$ lastName " ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠStudent Ġ: ĠPerson Ġ{ ĊĊĠĠĠ Ġconstructor ( firstName : ĠString , ĠlastName : ĠString ) Ġ: Ġsuper ( firstName , ĠlastName ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . firstName Ġ= ĠfirstName ĊĠĠĠĠĠĠĠ Ġthis . lastName Ġ= ĠlastName ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( firstName : ĠString , Ġmiddle Name : ĠString , ĠlastName : ĠString ) Ġ: Ġthis ( firstName , ĠlastName ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . middle Name Ġ= Ġmiddle Name ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ interface ĠFoo Ġ{ ĊĠĠĠ Ġval Ġcount : ĠInt Ċ } Ċ Ċ class ĠBar 1 ( override Ġval Ġcount : ĠInt ) Ġ: ĠFoo Ċ class ĠBar 2 Ġ: ĠFoo Ġ{ ĊĠĠĠ Ġoverride Ġval Ġcount Ġ= Ġ 0 Ċ } Ċ Ċ open Ġclass ĠG rand parent ( memo : ĠString ) Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Initial ising ĠG rand parent ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġval Ġid : ĠInt Ġ= Ġ( 0 .. 1 0 0 0 0 ). random (). also Ġ{ Ġprintln (" Initial ising Ġid Ġin ĠG rand parent : Ġ$ it ") Ġ} ĊĠĠĠ Ġopen Ġfun Ġf () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Grand parent . f () ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ open Ġclass ĠParent ( memo : ĠString ) Ġ: ĠG rand parent ( memo ) Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Initial ising ĠParent ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġid : ĠInt Ġ= Ġ( 0 .. 1 0 0 0 0 ). random (). also Ġ{ Ġprintln (" Initial ising Ġid Ġin ĠParent : Ġ$ it ") Ġ} ĊĠĠĠ Ġoverride Ġfun Ġf () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Parent . f () ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġg () Ġ{ ĊĠĠĠĠĠĠĠ Ġprint (" From ĠG rand parent : Ġ") ĊĠĠĠĠĠĠĠ Ġsuper . f () ĊĊĠĠĠĠĠĠĠ Ġprint (" From ĠChild : Ġ") ĊĠĠĠĠĠĠĠ Ġf () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠCol league Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġg () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprint (" From ĠG rand parent : Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper @ Parent . f () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġprint (" From ĠParent : Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġf () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ class ĠChild ( memo : ĠString ) Ġ: ĠParent ( memo ) Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Initial ising ĠChild ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġid : ĠInt Ġ= Ġ( 0 .. 1 0 0 0 0 ). random (). also Ġ{ Ġprintln (" Initial ising Ġid Ġin ĠChild : Ġ$ it ") Ġ} ĊĠĠĠ Ġoverride Ġfun Ġf () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Child . f () ") ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġh () Ġ{ ĊĠĠĠĠĠĠĠ Ġprint (" From ĠParent : Ġ") ĊĠĠĠĠĠĠĠ Ġsuper . f () ĊĊĠĠĠĠĠĠĠ Ġprint (" From ĠChild : Ġ") ĊĠĠĠĠĠĠĠ Ġf () ĊĠĠĠ Ġ} Ċ } Ċ Ċ abstract Ġclass ĠBase Ġ{ ĊĠĠĠ Ġabstract Ġfun Ġf () Ċ } Ċ Ċ class ĠDerived Ġ: ĠBase () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġf () Ġ{ ĊĊĠĠĠ Ġ} Ċ } ĊĊ Ċ interface ĠA Ġ{ ĊĠĠĠ Ġfun Ġfoo () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" A ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbar () Ċ } Ċ Ċ interface ĠB Ġ{ ĊĠĠĠ Ġfun Ġfoo () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" B ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbar () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" bar ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠC Ġ: ĠA Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġbar () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" bar ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠD Ġ: ĠA , ĠB Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġfoo () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper < A >. foo () ĊĠĠĠĠĠĠĠ Ġsuper < B >. foo () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbar () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . bar () Ġ// Ġfrom ĠB ĊĠĠĠ Ġ} Ċ }