【JAVA】关于重写(Override)与重载(Overload)

2024-03-20 3621阅读

【JAVA】关于重写(Override)与重载(Overload) 第1张


个人主页:【😊个人主页】

系列专栏:【❤️初识JAVA】


文章目录

  • 前言
  • 方法重载(Overload)
  • 重载的规则
  • 示例代码
  • 方法重写(Override)
  • 重写的规则
  • 示例代码
  • 方法重载与方法重写的区别

    前言

    关于JAVA,我们也已经学习过一段时间了,今天我们来学习一下在JAVA中方法的重载与重写。

    【JAVA】关于重写(Override)与重载(Overload) 第2张


    方法重载(Overload)

    方法重载(overload)是指在一个类中定义多个同名但参数列表不同的方法。Java编译器会根据方法调用时传递的参数来选择调用哪个方法。方法重载的优势在于可以为相似功能的方法提供统一的方法名,方便代码编写和维护。

    重载的规则

    1. 方法名必须相同。
    2. 参数列表必须不同(个数、类型、顺序)。
    3. 方法的返回类型可以相同也可以不同。
    4. 不能仅依据返回类型的不同来重载方法。

    示例代码

    public class Calculator {
        public int add(int a, int b) {
            return a + b;
        }
        public double add(double a, double b) {
            return a + b;
        }
        public int add(int a, int b, int c) {
            return a + b + c;
        }
    }
    

    在这个示例中,我们定义了三个名为add的方法,它们的参数列表不同。当需要调用add方法时,Java编译器会根据传入的参数类型和数量选择正确的方法进行调用。例如,add(1,2)会调用第一个add方法,add(1.0,2.0)会调用第二个add方法。


    方法重写(Override)

    在 Java 中,方法重写是指子类覆盖了父类中具有相同名称、参数列表和返回类型的方法。重写方法的目的是为了改变方法的实现,让子类的方法能够满足自己的需求,并且能够替换父类中的同名方法。

    重写的规则

    1. 方法名称、参数列表和返回类型必须与父类中的方法相同。
    2. 子类中重写的方法的访问修饰符不能低于父类中被重写的方法的访问修饰符。
    3. 子类中重写的方法不能抛出比父类中被重写的方法声明的更多的异常类型。
    4. 子类中无法重写父类中被声明为 final 的方法。

    示例代码

    class Animal {
       public void move() {
          System.out.println("动物可以移动");
       }
    }
    class Dog extends Animal {
       public void move() {
          System.out.println("狗可以跑和走");
       }
    }
    public class TestDog {
       public static void main(String args[]) {
          Animal a = new Animal(); // Animal 对象
          Animal b = new Dog(); // Dog 对象
          a.move(); // 执行 Animal 类的方法
          b.move(); // 执行 Dog 类的方法
       }
    }
    

    【JAVA】关于重写(Override)与重载(Overload) 第3张

    在上面的例子中,Animal 类有一个 move() 方法。在 Dog 类中,我们重写了这个方法,并且定义了新的实现方式。在 main() 方法中,我们创建了一个 Animal 类型的对象和一个 Dog 类型的对象。通过调用它们的 move() 方法,我们可以看到,当调用 Animal 类型的对象时,执行的是 Animal 类中的方法,而当调用 Dog 类型的对象时,执行的是 Dog 类中的方法。这就是方法重写的作用。

    方法重载与方法重写的区别

    【JAVA】关于重写(Override)与重载(Overload) 第4张

    方法重载指在同一个类中定义多个同名方法,但它们的参数列表不同(参数类型、参数个数、参数顺序不同)。Java 编译器会根据不同的参数列表来区分和调用不同的方法。在方法重载中,方法名相同,但参数列表不同,返回类型可以相同也可以不同。

    方法重载是在同一个类中出现,方法名相同,但参数列表不同,方法重写是在父类和子类之间出现,方法名、参数列表和返回值类型必须相同。


相关阅读:

1、哪个服务器可以转齐云楼?,根据您提供的内容,我生成了一个吸引人的疑问句标题,,梦幻西游中哪个服务器能转入齐云楼?,直接点明了玩家最关心的转服问题,同时包含了热门游戏和知名服务器名称,能有效吸引目标玩家点击。,梦幻西游转服指南,如何一键直达齐云楼服务器?,通过指南和一键直达制造解决方案的期待感,结合热门服务器名称齐云楼,精准吸引有转服需求的玩家,同时用问句形式引发点击欲。)

2、投票用哪个服务器可以切换ip?,如何选择能自由切换IP的投票服务器?,如何挑选能自由切换IP的高效投票服务器?

3、在 Linux 系统中,可以通过多种方式查看内存(RAM)信息,以下是常用的命令和方法,Linux内存查看全攻略,你知道几种查看RAM信息的命令?,Linux内存查看全攻略,这几种查看RAM信息的命令你都用过吗?

4、在计算机上安装Linux系统是一个相对简单的过程,以下是详细的步骤指南,适用于大多数Linux发行版(如Ubuntu、Fedora、Debian等),想轻松在电脑上安装Linux系统?跟着这个详细指南一步步来!,想轻松在电脑上安装Linux系统?跟着这个详细指南一步步来!

5、在Linux上安装64位Wine的步骤如下,适用于大多数主流发行版(如Ubuntu、Debian、Fedora、Arch等),如何在Linux主流发行版上轻松安装64位Wine?,想在Ubuntu、Debian等Linux系统运行Windows程序?手把手教你安装64位Wine!

    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]