All pastes #618911 Raw Edit

Proves What?

public java v1 · immutable
·published 2007-07-14 08:36 UTC
rendered paste body
public class CallWhat {  public static void main (String[] args) {    System.out.println ("Test 1:");    System.out        .println ("[Child a = new Child (1, 1); Child b = new Child (1, 2)]");    Child a = new Child (1, 1);    Child b = new Child (1, 2);    System.out.println ("a.sequals (b) : " + a.traceableEquals (b));    System.out.println ("b.traceableEquals (a) : " + b.traceableEquals (a));    System.out.println ("");    System.out.println ("Test 2:   ");    System.out.println ("[Root x = a; Root y = b]");    Root x = a;    Root y = b;    System.out.println ("a.traceableEquals (y): " + a.traceableEquals (y));    System.out.println ("a.traceableEquals (x): " + a.traceableEquals (x));    System.out.println ("b.traceableEquals (y): " + b.traceableEquals (y));    System.out.println ("b.traceableEquals (x): " + b.traceableEquals (x));    System.out.println ("Test 2, reversed:");    System.out.println ("y.traceableEquals (b): " + y.traceableEquals (b));    System.out.println ("y.traceableEquals (a): " + y.traceableEquals (a));    System.out.println ("x.traceableEquals (b): " + x.traceableEquals (b));    System.out.println ("x.traceableEquals (a): " + x.traceableEquals (a));    System.out.println ("Test 3:");    System.out.println ("x.traceableEquals (y): " + x.traceableEquals (y));    System.out.println ("y.traceableEquals (x): " + y.traceableEquals (x));  }}class Root {  private int i;  public Root (int i) {    this.i = i;  }  public boolean traceableEquals (Root r) {    System.out.println ("In Root#traceableEquals (Root r):");    System.out.println ("  My real class is: " + getClass ());    System.out.println ("  r's real class is: " + r.getClass ());    return this.i == r.i;  }}class Child extends Root {  private int j;  public Child (int i, int j) {    super (i);    this.j = j;  }  public boolean tracableEquals (Child c) {    System.out.println ("In Child#traceableEquals (Child c):");    System.out.println ("  My real class is: " + getClass ());    System.out.println ("  c's real class is: " + c.getClass ());    boolean parentEquality = super.traceableEquals (c);    System.out.println ("  Superclass equality test returned: "        + parentEquality);    return parentEquality && this.j == c.j;  }}