public class OverloadTest { double x, y; public OverloadTest(double x0, double y0) { x = x0; y = y0; } public void foo(double dx, double dy) { // foo ”«à”ªµ1 x += dx; y += dy; } public void foo(int dx, int dy) { // foo ”«à”ªµ2 x *= dx; y *= dy; } public void bar(Point p) { // bar ”«à”ªµ1 System.out.print("Point class: "); p.print(); System.out.println(); } public void bar(ColorPoint p) { // bar ”«à”ªµ2 System.out.print("ColorPoint class: "); p.print(); System.out.println(); } public void print() { System.out.printf("(%g, %g)", x, y); System.out.println(); } public static void main(String[] args) { OverloadTest o = new OverloadTest(1.1, 2.2); o.foo(3.3, 4.4); // foo ”«à”ªµ1”ªß’§¶”ªÂ”«¸”«± o.print(); o.foo(2, 3); // foo ”«à”ªµ2”ªß’§¶”ªÂ”«¸”«± o.print(); ColorPoint cp = new ColorPoint(0, 0, "red"); Point p = cp; o.bar(cp); // bar ”«à”ªµ2”ªß’§¶”ªÂ”«¸”«± o.bar(p); // bar ”«à”ªµ1”ªß’§¶”ªÂ”«¸”«± } }