Right approach for what? What problem are you trying to solve with an abstract nested class? Typically nested class or interface that's meant to be extended or implemented will be static. Unless you have a really good reason to do it the way you are (which is unlikely), I would change it.
Are you by any chance confusing "anonymous inner class" with "abstract inner class"?
The reason abstract inner classes would make so little sense, is what would extend them? Only another inner class (as your code demonstrates)! While I suppose it could be done this way, it seems very "un-OOP" in it's in-extensibility and anti-reuse.
Anonymous inner classes, on the other hand, are pretty widely used in java, and are spoken of frequently when discussing java. That's where you implement an interface by writing out only it's required method(s):
In preparing for battle I have always found that plans are useless, but planning is indispensable. -- Dwight D. Eisenhower