here at compile time line 1 doesnt compile....why?
some time back we had discussed that the compiler allows this to compile because at runtime test_one can refer to one of its subclasses which implements face....
I think it because of downcasting, i am not sure about this, as you downcast your tester class to test40 class.
Thats why its giving comilation error if you try following, it works,
because it is determined at runtime that test_one actually refers to tester class' object.
compiler doesn't know about it and as test 40 doesn't implements face, the code doesn't compile.
explicitly casting test_one to face will work here.