What is the use of anonymous inner classes ?
Answers were Sorted based on User's Feedback
Answer / 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 |
Answer / jubin thomas, bhilai(mpccet)
Anonymous class is a class which has no methods defined in
it.
Eg.
class a
{
public void hello();
}
class b
{
a obj = new a();
public void hello()
{
System.out.println("Hello World");
}
}
| Is This Answer Correct ? | 2 Yes | 64 No |
How to add menushortcut to menu item?
Is null in java?
What interface is extended by awt event listeners?
When is update method called?
Can Anybody tell the diff b/w jdk1.6 and latest version.
In how many ways we can do synchronization in java?
What are variable arguments or varargs?
What is string data?
public class AboutStrings{ public static void main(String args[]){ String s1="hello"; String s2="hel"; String s3="lo"; String s4=s2+s3; //to know the hash codes of s1,s4. System.out.println(s1.hashCode()); System.out.println(s4.hashCode()); // these two s1 and s4 are having same hashcodes. if(s1==s4){ System.out.println("s1 and s4 are same."); }else System.out.println("s1 and s4 are not same."); } } Somebody told me that, == operator compares references of the objects. In the above example even though s1 and s4 are refering to same object(having same hash codes), it is printing s1 and s4 are not same. Can anybody explain in detail why it is behaving like this? Thanks in Advance RavuriVinod
What is the differnence between String Buffer and String builder despite having knowledge that String builder is faster than String Buffer and last one is threadsafe.please tell another important difference.
Explain the differences between abstraction and encapsulation?
What do you mean by stack?