Re: Need clarification on Object.equals.
plewto@gmail.com writes:
Yes I understand that. In fact, as I pointed out in a
subsequent post, none of my code defines equals, Node was
however extending AbstractSet which does redefine it. Really
All I was looking for was a general direction I might look
The general direction would be to look up the documentation
of ?Gate?, especially Gate#equals.
public static void main(String[] argv){
Node a = new Gate();
Monitor b = new Monitor();
System.out.println(a.equals(b)); // --> prints 'true'
}
}
The underlying production code is a bit complex to include
here. My understanding is that equals is true if, and only if,
a and b are exactly the same object. Here they are not even
the same class.
The following also prints ?true? for possibly good reasons
(depending on the semantics of the classes, which is not
given here). At least it shows that this can happen without
overriding ?equals?.
class Node extends java.io.File{ public Node(){ super( "alpha" ); }}
class Gate extends Node{}
class Monitor extends Node{}
public class Main
{ public static void main( final java.lang.String[] args )
{ Node a = new Gate();
Monitor b = new Monitor();
java.lang.System.out.println( a.equals( b )); }}