Java的方法重载
- 职场就业
- 关注:1.99W次
如果一个类中有多个具有相同名称但参数不同,与返回值无关的方法,则称为方法重载。
方法重载提高了程序的可读性。
在java中重载方法有两种方式,它们分别是:
通过改变参数的数量
通过更改数据类型
操作方法
(01)修改参数的数量创建两个方法,第一个add()方法执行两个数值的相加操作,第二个add()方法执行三个数值的相加操作。在这个例子中,我们创建静态方法,所以不需要创建实例来调用方法
(02)更改参数的数据类型创建两种数据类型不同的方法第一个add方法接收两个整数参数,第二个add方法接收两个双精度型参数。
(03)问题:为什么方法重载不能通过更改方法的返回类型?在java中,只通过改变方法的返回类型来实现方法重载是不可能的,因为这样具有模糊性。 让我们来看看模糊性是怎么样发生的
(04)tln((11,11));//这里,java如何确定应该调用哪个sum()方法?可以重载java main()方法吗?这是完全可以的。 可以通过方法重载在类中有任意数量的main方法。 但是JVM调用main()方法,它只接收字符串数组作为参数。 让我们来看一个简单的例子:
(05)方法重载和类型提升如果没有找到匹配的数据类型,那么会隐式地将一个类型提升到另一个类型。 让我们通过下面的图示来理解这个概念:
(06)如上图所示,byte可以被提升为short,int,long,float或double。 short数据类型可以提升为int,long,float或double。 char数据类型可以提升为int,long,float或double等等。使用类型提升方法重载的示例
(07)如果找到匹配使用类型提升方法重载示例如果方法中存在匹配类型参数,则不会执行类型提升方法重载。
(08)在模糊的情况下使用类型提升来实现方法重载的示例如果在方法中没有匹配的类型参数,并且每个方法都会提升相同数量的参数,那么会出现歧义。如下示例代码,将会产生编译时错误。
特别提示
在java中,只通过更改方法的返回类型来实现方法重载是不可以的
- 文章版权属于文章作者所有,转载请注明 https://miaozhigu.com/zh-sg/zclc/jiuye/2elq0m.html