wood burning stoves 2.0*
The moose likes Beginning Java and the fly likes super.super.method() Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "super.super.method()" Watch "super.super.method()" New topic


Dirk Schreckmann

Joined: Dec 10, 2001
Posts: 7023
Is there a way to call a method from two levels up the inheritance heirarchy (where at each level the particular method is overridden and without instantiating any of the parent classes)?
So, if we have these three classes:

Thank You

[How To Ask Good Questions] [JavaRanch FAQ Wiki] [JavaRanch Radio]
Rob Ross

Joined: Jan 07, 2002
Posts: 2205
Let me also add that if you find yourself in a situation where that's what you want to do in your code, that's a big red flag that your design is flawed.
It means, in your subclass of the "grandparent", (the middle one) you factored out some functionality that you now want to re-implement in the grandchild class (the last one). This immediately suggests to me you flatten out your hierarchy, making the bottom most class a subclass of the grandparent. There may be other refactorings as well, but this is the one that LEAPS out at me when I get asked this question.
ie, go from this:

to this:

[ February 28, 2002: Message edited by: Rob Ross ]
[ February 28, 2002: Message edited by: Rob Ross ]

SCJP 1.4
Dirk Schreckmann

Joined: Dec 10, 2001
Posts: 7023
That's what I'd figured. Thanks Rob.
[ February 28, 2002: Message edited by: Dirk Schreckmann ]
I agree. Here's the link: http://aspose.com/file-tools
subject: super.super.method()
Similar Threads
How to call a protected method in other packages non-subclass
Abstract Class
Reference to method is ambiguous??????
super.super.method(); Why is it wrong ?