微笑精灵 2021-11-09 06:08 采纳率: 91.5%
浏览 41
已结题

java方法重载参数可以是父类和子类么?

我们都知道java有方法重载的功能。
主要就是参数不同的意思。
但是一个参数是父类一个参数是子类,那么这也可以重载么?
我试了一下,没有报错,但是我很疑惑,这个情况下传入子类,那调用的是参数是父类的还是参数是子类的方法呢?
八大基本类型也可以算是方法重载的参数么?
那么包装类和基本类型可以重载么?走的又是谁呢?

  • 写回答

2条回答 默认 最新

  • zcl_1991 2021-11-09 07:09
    关注

    img

    优先匹配类型一致的那个方法,如果没有,将参数的类型向上升级为其父类,继续匹配;如果最终都没有匹配到合适的方法,则报错;
    所以一个方法有2个重载方法,一个参数为子类,一个方法参数为该子类的父类时,如果参数为该子类,优先调用参数为子类的方法;

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    zcl_1991 2021-11-09 07:13

    这个对基本类型和包装类型同样适用;你可以试试这样:

    1. public void f1(short a,Short b){ System.out.println("1111"); }
    2. public void f1(Short a,short b){ System.out.println("2222"); }
    3. public void f1(Short a,Short b){ System.out.println("3333"); }
    4. public void f1(short a,short b){ System.out.println("4444"); }

    回复
查看更多回答(1条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 11月17日
  • 已采纳回答 11月10日
  • 创建了问题 11月9日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部