Suppose you have an abstract class MyAbstractClass with an abstract method do():
abstract class MyAbstractClass {abstract void do() ;}
Of course, some classes inheriting from MyAbstractClass can be redefined with the ‘do’ method. However, it may be convenient sometime to simply redefine the abstract method at the instantiation of its abstract class. This only requires the following lines:
MyAbstractClass myClass = new MyAbstractClass() { void do() { // Redefine here the abstract method }};
Redefining abstract methods at instantiation is particularly useful if the code in the method is rather short and creating subclasses would be useless or too heavy.