Skip to content

Calling super super class method

Let’s say I have three classes A, B and C.

  • B extends A
  • C extends B

All have a public void foo() method defined.

Now from C’s foo() method I want to invoke A’s foo() method (NOT its parent B’s method but the super super class A’s method).

I tried;, but it’s invalid syntax. How can I achieve this?



You can’t even use reflection. Something like

Class superSuperClass = this.getClass().getSuperclass().getSuperclass();

would lead to an InvocationTargetException, because even if you call the foo-Method on the superSuperClass, it will still use when you specify “this” in invoke. This is a consequence from the fact that all Java methods are virtual methods.

It seems you need help from the B class (e.g. by defining a superFoo(){; } method).

That said, it looks like a design problem if you try something like this, so it would be helpful to give us some background: Why you need to do this?

4 People found this is helpful