He wants to call the version of "tell" inherited from "c" directly from "a". Steven's answer is concise and correct -- it can't be done. No need for any examples: both Alec and Steven understand one another.
It's a security issue. A may not know all the reasons B overrode C's method. To allow A to bypass B and directly access the method in C could cause problems.
Suppose C was a generic elevator control object. The original designers used Imperial units to control the maximum velocity of the elevator. B comes along and overrides C's move method so it now takes velocities in metric units. Finally A comes along and wants to change the acceleration profile so it moves smoothly but doesn't realize B.move was actually a wrapper function that changed the units. A bypasses B completely and calls super.super.move() with Metric velocity units.
Elevator crashes. People die.
Java prevents direct access to "grandparent" methods to prevent this from happening. Also note this is true for methods AND constructors for the same reason.
Tom Blough<br /> <blockquote><font size="1" face="Verdana, Arial">quote:</font><hr>Cum catapultae proscriptae erunt tum soli proscripti catapultas habebunt.<hr></blockquote>