1 Testing for type A 2 A-virtual A.SayHi()='Hi ' 3 A-interface Greeter.SayHi()='Hi ' 4 A-virtual A.SayHiTwice()='Hi Hi ' 5 A-interface Greeter.SayHiTwice()='Hi Hi ' 6 End testing for type A 7 Testing for type B 8 B-virtual B.SayHi()='Hello ' 9 B-interface Greeter.SayHi()='Hello ' 10 B-interface Greeter2.SayHi()='Hello ' 11 B-virtual B.SayHiTwice()='I say Hello Hello ' 12 B-interface Greeter.SayHiTwice()='I say Hello Hello ' 13 B-interface Greeter2.SayHiTwice()='I say Hello Hello ' 14 End testing for type B 15 Testing for type C 16 C-virtual A.SayHi()='Hi ' 17 C-virtual C.SayHi()='Hi ' 18 C-interface Greeter.SayHi()='Hi ' 19 C-virtual A.SayHiTwice()='You don't control me' 20 C-virtual C.SayHiTwice()='You don't control me' 21 C-interface Greeter.SayHiTwice()='You don't control me' 22 End testing for type C 23 Testing for type D 24 D-virtual D.GetName()='Alex ' 25 D-interface Greeter3.GetName()='Alex ' 26 D-virtual D.SayHi()='Hello Alex ' 27 D-interface Greeter.SayHi()='Hello Alex ' 28 D-interface Greeter3.SayHi()='Hello Alex ' 29 D-virtual D.SayHiTwice()='Hello Alex Hello Alex ' 30 D-interface Greeter.SayHiTwice()='Hello Alex Hello Alex ' 31 D-interface Greeter3.SayHiTwice()='Hello Alex Hello Alex ' 32 End testing for type D 33 Testing for type E 34 E-virtual A.SayHi()='Hi2 ' 35 E-virtual E.SayHi()='Hi2 ' 36 E-interface Greeter.SayHi()='Hi2 ' 37 E-interface Greeter2.SayHi()='Hi2 ' 38 E-virtual A.SayHiTwice()='I say Hi2 Hi2 ' 39 E-virtual E.SayHiTwice()='I say Hi2 Hi2 ' 40 E-interface Greeter.SayHiTwice()='I say Hi2 Hi2 ' 41 E-interface Greeter2.SayHiTwice()='I say Hi2 Hi2 ' 42 End testing for type E 43 Testing for type F 44 F-interface Attendant.GetPlace()='android' 45 F-virtual F.GetPlace()='android' 46 F-virtual A.SayHi()='Hi ' 47 F-interface Attendant.SayHi()='Hi ' 48 F-virtual F.SayHi()='Hi ' 49 F-interface Greeter.SayHi()='Hi ' 50 F-virtual A.SayHiTwice()='We can override both interfaces' 51 F-interface Attendant.SayHiTwice()='We can override both interfaces' 52 F-virtual F.SayHiTwice()='We can override both interfaces' 53 F-interface Greeter.SayHiTwice()='We can override both interfaces' 54 End testing for type F 55 Testing for type G 56 G-interface Attendant.GetPlace()='android' 57 G-virtual G.GetPlace()='android' 58 G-interface Attendant.SayHi()='welcome to android' 59 G-virtual G.SayHi()='welcome to android' 60 G-interface Attendant.SayHiTwice()='welcome to androidwelcome to android' 61 G-virtual G.SayHiTwice()='welcome to androidwelcome to android' 62 End testing for type G 63 Testing for type H 64 H-interface Extension.SayHi()='welcome ' 65 H-virtual H.SayHi()='welcome ' 66 End testing for type H 67 Testing for type I 68 I-virtual A.SayHi()='Hi ' 69 I-interface Greeter.SayHi()='Hi ' 70 I-interface Greeter2.SayHi()='Hi ' 71 I-virtual I.SayHi()='Hi ' 72 I-virtual A.SayHiTwice()='I say Hi Hi ' 73 I-interface Greeter.SayHiTwice()='I say Hi Hi ' 74 I-interface Greeter2.SayHiTwice()='I say Hi Hi ' 75 I-virtual I.SayHiTwice()='I say Hi Hi ' 76 End testing for type I 77 Testing for type J 78 J-virtual A.SayHi()='Hi ' 79 J-interface Greeter.SayHi()='Hi ' 80 J-virtual J.SayHi()='Hi ' 81 J-virtual A.SayHiTwice()='Hi Hi ' 82 J-interface Greeter.SayHiTwice()='Hi Hi ' 83 J-virtual J.SayHiTwice()='Hi Hi ' 84 End testing for type J 85 Testing for type K 86 K-interface Foo.bar()='foobar' 87 K-virtual K.bar()='foobar' 88 End testing for type K 89 Testing for type L 90 L-interface Foo.bar()='foobar' 91 L-virtual K.bar()='foobar' 92 L-virtual L.bar()='foobar' 93 End testing for type L 94 Testing for type M 95 M-interface Foo.bar()='BAZ!' 96 M-interface Fooer.bar()='BAZ!' 97 M-virtual K.bar()='BAZ!' 98 M-virtual L.bar()='BAZ!' 99 M-virtual M.bar()='BAZ!' 100 End testing for type M 101