1Testing for type A 2A-virtual A.SayHi()='Hello ' 3A-interface Iface.SayHi()='Hello ' 4End testing for type A 5Testing for type B 6B-virtual B.SayHi()='Hello Hello ' 7B-interface Iface.SayHi()='Hello Hello ' 8B-interface Iface2.SayHi()='Hello Hello ' 9End testing for type B 10Testing for type C 11C-virtual C.SayHi()='Hello and welcome ' 12C-interface Iface.SayHi()='Hello and welcome ' 13End testing for type C 14Testing for type D 15D-virtual D.SayHi()='Hello Hello and welcome ' 16D-interface Iface.SayHi()='Hello Hello and welcome ' 17D-interface Iface2.SayHi()='Hello Hello and welcome ' 18End testing for type D 19Testing for type E 20E-virtual E.SayHi()='Hello there!' 21E-interface Iface.SayHi()='Hello there!' 22E-interface Iface3.SayHi()='Hello there!' 23End testing for type E 24Testing for type F 25F-virtual E.SayHi()='Hello there!' 26F-virtual F.SayHi()='Hello there!' 27F-interface Iface.SayHi()='Hello there!' 28F-interface Iface3.SayHi()='Hello there!' 29F-virtual F.SaySurprisedHi()='Hello there!!' 30End testing for type F 31Testing for type G 32G-virtual E.SayHi()='Hello there!?' 33G-virtual F.SayHi()='Hello there!?' 34G-virtual G.SayHi()='Hello there!?' 35G-interface Iface.SayHi()='Hello there!?' 36G-interface Iface3.SayHi()='Hello there!?' 37G-virtual F.SaySurprisedHi()='Hello there!!' 38G-virtual G.SaySurprisedHi()='Hello there!!' 39G-virtual G.SayVerySurprisedHi()='Hello there!!!' 40End testing for type G 41Testing for type H 42H-virtual H.SayConfusedHi()='Hello ?!' 43H-virtual A.SayHi()='Hello ?' 44H-virtual H.SayHi()='Hello ?' 45H-interface Iface.SayHi()='Hello ?' 46H-virtual H.SaySurprisedHi()='Hello !' 47End testing for type H 48