1 private@ 2 3 type A @abstract = 4 def f : String 5 6 type B = 7 inherit A 8 9 def A.f = "B" 10 11 do 12 let a : A = B.new 13 assert a.f == "B" 14 15 type C @abstract = 16 inherit A 17 18 type D = 19 inherit C 20 21 def A.f = "D" 22 23 do 24 let a : A = D.new 25 assert a.f == "D" 26 27 do 28 let c : C = D.new 29 assert c.f == "D" 30