修也

实践出真知.

java方法重载--参数类型转换

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


阅读更多
版权声明:The beautiful thing about learning is nobody can take it away from you. https://blog.csdn.net/xiuye2015/article/details/52382012
个人分类: Java
上一篇com组件创建过程图
下一篇java--动态单分派,静态多分派
想对作者说点什么? 我来说一句

java实现七参数转换功能

2017年06月21日 525KB 下载

没有更多推荐了,返回首页

关闭
关闭