In this inheritance hierarchy, [ class B extends class A and class C extends class B ] if a method foo() declared in A and has been overridden in B and C, then how to call directly the version of method foo() in class A from class C.
It is not possible to directly call the method of class A in class C, using class C reference, even if it implements polymorphism. But it is always possible to create a reference of class A in class C and use it to call the supermost class method foo().
Basically, if you feel the need to do that, you probably have a deeper problem with your design. Can you give us an example of where you would want to do that?
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus