What is the use of anonymous inner classes ?

Answer Posted / ram

You need object of class 'X', but you want some custom
behavior for the object, not following the behavior defined
by the class 'X'.
Solution 1: create subclass 'Y' extending 'X'. Override
required methods(for custom behavior). create instance of Y
in your code and use it.
Solution 2: But you can achieve the above thing (need a
instance with different behavior) using anonymous inner
classes. The advantage here is, you don't even need to
create a subclass. Create an Anonymous inner class on the
fly, Just override the required behavior, and create an
instance and use it. Here is an example :

I have a class 'A'. By default, its getValue() method
returns whatever the value x holds. But i want to override
this behavior, it should return x+15.

public class AnonymousInnerClass {

public static void main(String[] args) {
A a = new A(10) {
@Override
public int getValue() {
return x + 15;
}
};
System.out.println(a.getValue());// 25 and not 10
}

}

class A {
int x;

public int getValue() {
return x;
}

A(int x) {
this.x = x;
}
}

Is This Answer Correct ?    0 Yes 0 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

Write a regular expression to validate a password. A password must start with an alphabet and followed by alphanumeric characters; its length must be in between 8 to 20.

583


How do you convert an int to a double in java?

587


How do I know if java is installed?

512


What does microservices mean?

526


Explain about main() method in java ?

576






What is nested top-level class?

574


What is an object in java and how is it created?

581


What is the default value of float and double datatype in java?

528


What is return code?

554


What is namespace in java?

541


What does a void function return?

541


What if I write static public void instead of public static void in java?

574


What are static blocks in java ?

603


Is boolean a wrapper class in java?

594


What is loop in java?

523