Re: Is this a local anonymous class or a member anonymous class
"Reporter" <TruckSafety@gmail.com> wrote in message
news:1178929062.373078.203250@p77g2000hsh.googlegroups.com...
I read that an anonymous class is an unnamed local class.
However, in the example below, I have created what I believe to be an
anonymous class that is a member class, not a local class. Anyone
want to comment?
Let's see. A member class is defined within the scope of its containing
class Depending on its protection level, it might be visible within the
class, the package, or the world. A local class is defined within a method
and is visible only within that method. Of course, since anonymous class
have no names, you can't sensibly discuss what scope they're defined in.
You seem to have found an edge case. I suggest that since your
public class Main {
ClassA anonB_Object = new ClassA("Hello" ) {
// The original Display Method
public void Display(){
System.out.println("Inherited Anonymous Overridden MEMBER
Display ClassA Output:"+Message);
}
};
is the moral equivalent of
public class Main {
ClassA anonB_Object;
init {
aonB_Object = new ClassA("Hello" ) {
// The original Display Method
public void Display(){
System.out.println("Inherited Anonymous Overridden MEMBER
Display ClassA Output:"+Message);
}
}
};
that your anonyomus class is local to the (implied) init block. I don't
insist in this, but I think it's simpler than defining yet another kind of
inner class.