package com.xiuye.test;
import java.io.Serializable;
public class TestOverload {
static abstract class A {
}
static class B extends A {
}
static class C extends A {
}
public void f(A a) {
System.out.println("AAAAAAA");
}
public void f(B a) {
System.out.println("BBBBBBB");
}
public void f(C a) {
System.out.println("CCCCCCC");
}
public static void main(String[] args) {
TestOverload l = new TestOverload();
// l.f(new A());
l.f(new B());
l.f(new C());
say('a');
}
/**
* 依次注释1~9, say('a')会依次向上转型输出,
* char->int->long->float->double->Character->Serializable->Object->char...
*
* @param obj
*/
// 8
public static void say(Object obj) {
System.out.println("Object");
}
// 1
public static void say(char obj) {
System.out.println("char");
}
// 2
public static void say(int obj) {
System.out.println("int");
}
// 3
public static void say(long obj) {
System.out.println("long");
}
// 4
public static void say(float obj) {
System.out.println("float");
}
// 5
public static void say(double obj) {
System.out.println("double");
}
// 6
public static void say(Character obj) {
System.out.println("Character");
}
// 7
public static void say(Serializable obj) {
System.out.println("Serializable");
}
// 9
public static void say(char... obj) {
System.out.println("char...");
}
}
BBBBBBB
CCCCCCC
char