Demotion of primitives and overloading
// : c04:Demotion.java // Demotion of primitives and overloading. // From 'Thinking in Java, 3rd ed.' (c) Bruce Eckel 2002 // www.BruceEckel.com. See copyright notice in CopyRight.txt. public class Demotion { void f1(char x) { System.out.println("f1(char)"); } void f1(byte x) { System.out.println("f1(byte)"); } void f1(short x) { System.out.println("f1(short)"); } void f1(int x) { System.out.println("f1(int)"); } void f1(long x) { System.out.println("f1(long)"); } void f1(float x) { System.out.println("f1(float)"); } void f1(double x) { System.out.println("f1(double)"); } void f2(char x) { System.out.println("f2(char)"); } void f2(byte x) { System.out.println("f2(byte)"); } void f2(short x) { System.out.println("f2(short)"); } void f2(int x) { System.out.println("f2(int)"); } void f2(long x) { System.out.println("f2(long)"); } void f2(float x) { System.out.println("f2(float)"); } void f3(char x) { System.out.println("f3(char)"); } void f3(byte x) { System.out.println("f3(byte)"); } void f3(short x) { System.out.println("f3(short)"); } void f3(int x) { System.out.println("f3(int)"); } void f3(long x) { System.out.println("f3(long)"); } void f4(char x) { System.out.println("f4(char)"); } void f4(byte x) { System.out.println("f4(byte)"); } void f4(short x) { System.out.println("f4(short)"); } void f4(int x) { System.out.println("f4(int)"); } void f5(char x) { System.out.println("f5(char)"); } void f5(byte x) { System.out.println("f5(byte)"); } void f5(short x) { System.out.println("f5(short)"); } void f6(char x) { System.out.println("f6(char)"); } void f6(byte x) { System.out.println("f6(byte)"); } void f7(char x) { System.out.println("f7(char)"); } void testDouble() { double x = 0; System.out.println("double argument:"); f1(x); f2((float) x); f3((long) x); f4((int) x); f5((short) x); f6((byte) x); f7((char) x); } public static void main(String[] args) { Demotion p = new Demotion(); p.testDouble(); } } ///:~