JAVA中如何调用列表接口的删除重载方法

  介绍

这篇文章给大家分享的是有关JAVA中如何调用列表接口的删除重载方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

<强>测试类设计

<强>测试类一

public  class  Text  {      ,public  void 删除(int 指数){   System.out.println才能(“调用传参为int的去除方法“);   ,}      ,public  void 删除(Integer 对象){   System.out.println才能(“调用传参为整数的去除方法“);   ,}      ,public  void 删除(Object 对象){   System.out.println才能(“调用传参为对象的删除方法“);   ,}   }

<>强测试类二

public  class  Text  {   ,   ,public  void 删除(Integer 对象){   System.out.println才能(“调用传参为整数的去除方法“);   ,}      ,public  void 删除(Object 对象){   System.out.println才能(“调用传参为对象的删除方法“);   ,}   }

<>强测试类三

public  class  Text  {      ,public  void 删除(Object 对象){   System.out.println才能(“调用传参为对象的删除方法“);   ,}   }

<>强结果

三个测试类分别传入整数,整数,对象型变量,观察效果。

<强>测试类一

<李>

传入类型为int:调用传参为int的去除方法

<李>

传入类型为整数:调用传参为整数的去除方法

<李>

传入类型为对象:调用传参为对象的删除方法

<强>测试类二

<李>

传入类型为int:调用传参为整数的去除方法

<李>

传入类型为整数:调用传参为整数的去除方法

<李>

传入类型为对象:调用传参为对象的删除方法

<强>测试类三

<李>

传入类型为int:调用传参为对象的删除方法

<李>

传入类型为整数:调用传参为对象的删除方法

<李>

传入类型为对象:调用传参为对象的删除方法

从输出结果可以看的出,当方法的传参的类层级逐渐变高时,层级较低的传参会进行向上转型适应传参的需要。

<强>原因分析

下面我们先反编译各测试类的源码,结果如下

<强>测试类一

<代码> invokevirtual # 11//删除方法:(I) V

<代码> invokevirtual # 15//删除方法:(Ljava/lang/整数;V

<代码> invokevirtual # 18//删除方法:(Ljava/lang/对象;)V

<强>测试类二

<代码> invokevirtual # 11//删除方法:(Ljava/lang/整数;V

<代码> invokevirtual # 11//删除方法:(Ljava/lang/整数;V

<代码> invokevirtual # 17//删除方法:(Ljava/lang/对象;)V

<强>测试类三

<代码> invokevirtual # 10//删除方法:(Ljava/lang/对象;)V

<代码> invokevirtual # 10//删除方法:(Ljava/lang/对象;)V

<代码> invokevirtual # 10//删除方法:(Ljava/lang/对象;)V

可以看的出,反编译代码中都是调用实例方法的命令,所以结果中自动“向上转型,其实是jvm的功劳.jvm通过在编译时确定调用的传参类型,静态分派到具体方法的。

所以在前言中的困惑已经解除了,就是由于jvm中静态分派的实现,调用次序是int→整数→对象。

感谢各位的阅读!关于“JAVA中如何调用列表接口的删除重载方法”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

JAVA中如何调用列表接口的删除重载方法