Java方法重载

2021-03-19  本文已影响0人  Amy木婉清
image.png
方法的签名:方法名和参数列表

一个类中,不可以有两个方法的签名完全相同,即一个类中不可以有两个方法的方法名和参数列表完全一样。
如果一个类的两个方法名字相同,参数列表不同是可以的。

//编译错误
public class Cashier{
   public boolean pay(double money){...}
   public boolean pay(double money){...}
}

//编译正确
public class Cashier{
   public boolean pay(double money){...}
   public boolean pay(String cardId,String cardPwd){...}
}
方法重载及其意义
image.png

在Java语言中,允许多个方法的名称相同,但参数列表不同,称之为方法的重载(overload)


image.png
编译时根据签名绑定调用方法

编译器在编译时会根据签名来绑定调用不同的方法,我们可以把重载的方法看成是完全不同的方法,只不过恰好方法名相同而已。


image.png

方法的重载(overload):
1)发生在一个类中,方法名相同,参数列表不同,方法体不同
2)编译器在编译时根据方法的签名自动绑定调用的方法
同一个文件中可以包含多个类
public修饰的类只能有一个
public修饰的类必须与文件名相同
一般情况一个文件只包含一个


image.png

重载与返回值类型无关
重载与参数名称无关

package com.example.day01.oop.day02;

import static com.example.day01.day06.MethodDemo.say;

/**
 * @author zwp
 * 同一个文件中可以包含多个类
 * public修饰的类只能有一个
 * public修饰的类必须与文件名相同
 * 一般情况一个文件只包含一个类
 * @description: 重载demo演示
 * @date: 2021/3/19 16:14
 */
public class OverLoadDemo {
    public static void main(String[] args) {
        Aoo aoo = new Aoo();
        aoo.say();
        aoo.say("zhangsan");
        aoo.say(25);
        aoo.say(25,"zhangsan");
        aoo.say("zhangsan",25);
    }
}

//为了方便测试  一个文件中建多个类,正常情况下一个文件下面只有一个类
class Aoo { //测试方法的重载
    void say() {

    }

    void say(String name) {

    }

    void say(int age) {

    }

    void say(String name, int age) {

    }

    void say(int age, String name) {

    }
  /*  //错误示范,方法重载与返回值类型无关
    int say(){
        return  1;
    }*/
/*  //错误示范,方法重载与参数名字无关
  void say(String address){

  }*/
}

想调用类里面的方法,第一步就是声明对象,new 然后引用.方法
示例:

Student st  = new Student();
st.name=”znagsan”;
st.age=25;
上一篇 下一篇

猜你喜欢

热点阅读