栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

快速识别方法重载与方法重写

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

快速识别方法重载与方法重写

文章目录

前言一、什么是方法重载二、什么是方法重写三、方法重写与方法重载的对比总结


前言

在日常的编程生活中,我们一定会接触到有关方法重写,方法重载,这两个词语仅存在一个字的差别,因此我们有可能会搞混,那么现在我们就一起来仔细对比一下吧。


一、什么是方法重载

Java允许同一个类里定义多个同名方法,只要形参列表不同就行。写同一个方法名,但是形参列表不同就是方法的重载。至于方法的其他部分,如返回值、修饰符等,与方法重载无关。

下面程序是方法重载的示例:

public class Overload {
    //下面定义了两个test()方法,但是方法的形参列表不同
    //系统可以区分这两个方法,这被称为方法重载
    public void test() {
        System.out.println("方法1,无参");
    }

    public void test(String msg) {
        System.out.println("方法2,带参");
    }

    public static void main(String[] args) {
        Overload o1 = new Overload();
        //首先调用方法1
        o1.test();
        //再调用方法2,此时需要传入一个参数
        o1.test("hello");
    }
}

编译运行没有任何问题,虽然两个test方法名字一样,但是他们是截然不同的两个方法,这就是方法重载。


二、什么是方法重写

方法重写往往发生在继承的情况下,子类方法覆盖了父类方法,这个子类的方法与被覆盖的那个方法有着相同的方法名,形参列表,这就是方法重写。但是注意,子类方法的返回值类型要比父类的返回值类型更小或相等,子类方法抛出的异常也要比父类方法抛出的异常更小或相等。

下面是方法重写的程序示例:

 class Bird {
    //Bird类的fly方法
    public void fly() {
        System.out.println("我是鸟,我会飞");
    }
}
//下面定义一个鸵鸟类继承鸟类
 class Ostrich extends Bird {
    //鸵鸟虽然是鸟但并不会飞,如果使用父类的fly方法显然不合理,这时候我们就可以方法重写
    public void fly() {
        System.out.println("虽然我是鸟,但是我不会飞");
    }
    public static void main(String[] args) {
        Ostrich o = new Ostrich();
        o.fly();
    }
}

三、方法重写与方法重载的对比

方法重载和重写无疑方法名都是相同的,方法重写:重写这个单词我们可以理解为写方法体,那既然方法体改变了,是不是就有可能改变它的返回值,并且还有抛出的异常也可能改变,只要我们注意返回值和异常需要小于等于父类的对应方法的。方法重载:重载这个单词我们可以理解为用不同的形参重新载入这个方法体,并不需要考虑返回值等。


总结

我们可以根据自己的应用场景来判断是方法重载还是方法重写,在涉及继承的相关知识时,子类虽然能继承父类的方法,但是毕竟儿子不可能和爹一模一样,那么当他们有不一样的地方时,需要去重写方法。当我想要多个拥有相同名字的方法,通过不一样的参数传入可以实现不同功能,这就是方法重载。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/785150.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号