菜鸟学JAVA之——方法的重载

方法的重载

重载与重写不一样,重写是发生在继承里的,子类中用一个与父类中的同名方法把父类中的方法覆盖掉的过程。而重载是方法名一样,但参数不一样。(比如系统的println方法就是一个重载方法,自己可以看一下源码)(这些同名的方法实际上在内存的方法区的方法栈中体现的就是不同的方法)

方法的出口是他的返回值,入口是他的参数,根据参数类型,个数,顺序的不同来走不同的方法

重载的条件

1.参数类型不同

2.参数个数不一样

3.参数顺序不同

类型不同
public class Foo {
    public void fun() {
        
    }
    public void fun(int a) {
        System.out.println("int");
    }
    public void fun(byte b) {
        System.out.println("byte");
    }
}

场景类

public class Main {
    public static void main(String[] args) {
        Foo foo = new Foo();
        foo.fun(12345);//输出int,因为他超过了btye类型的范围
        foo.fun((byte)12345);//输出btye
        foo.fun(1);//输出int,因为默认类型为int
    }
}
个数不一样、顺序不同
public class Foo {
    public void fun() {
        
    }
    public void fun(int a) {
        System.out.println("int");
    }
    public void fun(int a,int b) {
     
    }
    public void fun(int a,String str) { //个数相同,类型不同,可以
        
    }
    public void fun(String str,int a) {//个数相同,类型形同,顺序不同,可以
        
    }
}

注意:

  • 形参名不同并不能实现重载
  • 返回值类型不能实现重载,因为重载关心的是入口而不是出口
  • 普通方法、构造方法可以重载
  • 声明为final的方法不能被重载
  • 声明为static的方法不能被重载,但是能够被再次声明

重载的使用场景

在开发时,用在方法有可能有一些大变化(增加新功能)的过程

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值