Java方法的重载

本文介绍了Java中的方法重载概念,强调了“两同一不同”原则,即方法名相同但参数列表不同的特性。讲解了如何通过形参类型匹配确定优先调用的方法,以及自动类型提升和强制类型转换的区别。最后提到JavaAPI中的方法重构现象。
摘要由CSDN通过智能技术生成

方法的重载(overload)

  • 定义:在同一个类中,允许存在一个以上的同名方法,只要他们的参数列表不同即可。满总这样特征的多个方法,彼此之间构成方法的重载。
  • 特点:“两同一不同”。两同:同一个类、相同的方法名。一不同:参数列表不同。

方法的重载与形参的名、权限修饰符、返回值类型都没有关系


方法名相同、形参不同

public void sum(int i,int j){
   
}
public void sum(int i,double d){
   
}
public void sum(String str1,String str2){
   
}
public void sum(String str1,int i){
   
}

编译通过

方法名相同、形参相同

public void sum(int i,int j){
   
}
public void sum(int m,int n){
   
}

编译报错

报错信息:

java: 已在类 test.test中定义了方法 add(int,int)

实际问题(举例)


优先调用

优先使用形参不需要类型转换的方法

public class test {
   public static void main(String[] args) {
       test.sum(1,2);  //形参为(int,int)
   }
   public static void sum(int i, int j){
       System.out.println("int");
   }
   public static void sum(double i,double j){
       System.out.println("double");
   }

}

int
在这里插入图片描述


自动类型提升

public class test {
   public static void main(String[] args) {
       test.sum(1,2.0);  //形参为(int--- >double,double)
   }
   public static void sum(int i, int j){
       System.out.println("int");
   }
   public static void sum(double i,double j){
       System.out.println("double");
   }

}

在这里插入图片描述


强制类型转换

public class test {
   public static void main(String[] args) {
       test.sum((double) 1,(double) 2);  //形参强制转换为(double,double)
   }
   public static void sum(int i, int j){
       System.out.println("int");
   }
   public static void sum(double i,double j){
       System.out.println("double");
   }

}

double
在这里插入图片描述


其他


public class test {
   public static void main(String[] args) {
       int []arr1 = new int[]{1,2,3,4,5};
       System.out.println(arr1); //[I@b4c966a
       char []arr2 = new char[]{'a','b','c'};
       System.out.println(arr2);   //abc
       boolean []arr3 = new boolean[]{true,false};
       System.out.println(arr3);   //[Z@2f4d3709
   }
}

在这里插入图片描述

Java自身提供的API也存在着方法的重构,同一个方法名,编译器通过输入形参的不用,选择合适的方法
在这里插入图片描述

声明:本文为网课学习Java所做笔记,如有差错,允以见谅。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值