import java.awt.Color; class Punkt { private final int x, y; public Punkt(int x, int y) { this.x = x; this.y = y; } public boolean equals(Object o) { if (!(o instanceof Punkt)) return false; Punkt p = (Punkt)o; return this.x == p.x && this.y == p.y; } // equals } // class Punkt class Färgpunkt extends Punkt { private final Color färg; public Färgpunkt(int x, int y, Color f) { super(x, y); färg = f; } public boolean equals1(Object o) { if (!(o instanceof Färgpunkt)) return false; Färgpunkt fp = (Färgpunkt)o; return super.equals(fp) && this.färg == fp.färg; } // equals public boolean equals(Object o) { if (o instanceof Färgpunkt) { Färgpunkt fp = (Färgpunkt)o; return super.equals(fp) && this.färg == fp.färg; } else if (o instanceof Punkt) { return o.equals(this); } else return false; } // equals } // class Färgpunkt class Färgpunkt2 { private final Punkt punkt; private final Color färg; public Färgpunkt2(int x, int y, Color f) { punkt = new Punkt(x, y); färg = f; } public boolean equals(Object o) { if (!(o instanceof Färgpunkt2)) return false; Färgpunkt2 fp = (Färgpunkt2)o; return super.equals(fp) && this.färg == fp.färg; } // equals } // class Färgpunkt2 class Punkter { public static void main(String[] arg) { Punkt punkt = new Punkt(1, 2); Punkt punkt2 = new Punkt(1, 2); System.out.println("punkt.equals(punkt2): " + punkt.equals(punkt2)); System.out.println("punkt2.equals(punkt): " + punkt2.equals(punkt)); punkt.equals(punkt2); punkt2.equals(punkt); Färgpunkt rödPunkt = new Färgpunkt(1, 2, Color.RED); Färgpunkt blåPunkt = new Färgpunkt(1, 2, Color.BLUE); System.out.println("rödPunkt.equals(blåPunkt): " + rödPunkt.equals(blåPunkt)); System.out.println("punkt.equals(rödPunkt): " + punkt.equals(rödPunkt)); System.out.println("rödPunkt.equals(punkt): " + rödPunkt.equals(punkt)); Färgpunkt2 rödPunkt2 = new Färgpunkt2(1, 2, Color.RED); Färgpunkt2 blåPunkt2 = new Färgpunkt2(1, 2, Color.BLUE); System.out.println("rödPunkt2.equals(blåPunkt2): " + rödPunkt2.equals(blåPunkt2)); System.out.println("punkt.equals(rödPunkt2): " + punkt.equals(rödPunkt2)); System.out.println("rödPunkt2.equals(punkt): " + rödPunkt2.equals(punkt)); } // main } // class Punkter