//: initialization/Demotion.java // Demotion of primitives and overloading. import static net.mindview.util.Print.*; public class Demotion { void f1(char x) { print("f1(char)"); } void f1(byte x) { print("f1(byte)"); } void f1(short x) { print("f1(short)"); } void f1(int x) { print("f1(int)"); } void f1(long x) { print("f1(long)"); } void f1(float x) { print("f1(float)"); } void f1(double x) { print("f1(double)"); } void f2(char x) { print("f2(char)"); } void f2(byte x) { print("f2(byte)"); } void f2(short x) { print("f2(short)"); } void f2(int x) { print("f2(int)"); } void f2(long x) { print("f2(long)"); } void f2(float x) { print("f2(float)"); } void f3(char x) { print("f3(char)"); } void f3(byte x) { print("f3(byte)"); } void f3(short x) { print("f3(short)"); } void f3(int x) { print("f3(int)"); } void f3(long x) { print("f3(long)"); } void f4(char x) { print("f4(char)"); } void f4(byte x) { print("f4(byte)"); } void f4(short x) { print("f4(short)"); } void f4(int x) { print("f4(int)"); } void f5(char x) { print("f5(char)"); } void f5(byte x) { print("f5(byte)"); } void f5(short x) { print("f5(short)"); } void f6(char x) { print("f6(char)"); } void f6(byte x) { print("f6(byte)"); } void f7(char x) { print("f7(char)"); } void testDouble() { double x = 0; print("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(); } } /* Output: double argument: f1(double) f2(float) f3(long) f4(int) f5(short) f6(byte) f7(char) *///:~