你真的了解重载吗?重载的本质是什么?

  1. 重载是静态分配的一种体现。
  2. 何为静态分配:例:Parent p =new Child();我们把表达式左侧的Parent 就称为静态类型/外观类型,右侧的Child称为实际类型,静态类型在编译期间就是可知的,而实际类型在运行期间才是可知的。
  3. 方法版本:即就是要调用哪个方法
  4. 有以静态类型来定位方法执行版本的分派称为静态分派。 如多态,到底执行哪个子类还是父亲类的方法,要在运行时候才可以确定
  5. 以下代码执行结果是是什么? 答案:打印  hello char
  6. import java.io.Serializable;

    public class OverLoadDemo {

        public static void sayHello(Object o) {
            System.out.println("hello Object");
        }

        public static void sayHello(int o) {
            System.out.println("hello int");
        }

        public static void sayHello(long o) {
            System.out.println("hello long");
        }

        public static void sayHello(float o) {
            System.out.println("hello float");
        }

        public static void sayHello(double o) {
            System.out.println("hello double");
        }

        public static void sayHello(char o) {
            System.out.println("hello char");
        }

        public static void sayHello(Character o) {
            System.out.println("hello Character");
        }

        public static void sayHello(char... o) {
            System.out.println("hello char...........");
        }

        public static void sayHello(Serializable o) {
            System.out.println("hello Serializable");
        }

        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            sayHello('a');
        }

    }

  7. 但如果把 sayHello(char o)注释掉会打印  hello int

  8. sayHello(int o)注释掉打印    hello long

  9. sayHello(long o) 注释掉打印    hello float

  10. sayHello注释掉  打印 hello double

  11. sayHello(double o)注释掉  打印 hello Character

  12. sayHello(Character o) 注释掉  打印hello Character

  13. sayHello(Serializable o)  注释掉 打印 hello Object

  14.  sayHello(Object o) 注释掉 打印 hello char...........
    char-》int=》long=》float=》double顺序进行转化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值