2.5. 重载与覆盖

这篇具有很好参考价值的文章主要介绍了2.5. 重载与覆盖。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在 Java 中,方法的重载(Overloading)和覆盖(Overriding)是两个重要的概念。它们都涉及到方法的定义与使用,但作用和规则有所不同。

重载(Overloading)

重载是指在同一个类中定义多个同名的方法,但它们的参数列表不同(参数的个数、类型或顺序不同)。重载允许我们使用相同的方法名来实现不同的功能,提高了代码的可读性和可维护性。

下面是一个重载的例子:

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;
    }
}

在这个例子中,Calculator 类有三个 add 方法,分别接受不同数量和类型的参数。当我们调用 add 方法时,Java 会根据传入参数的类型和数量自动选择正确的方法。

Calculator calculator = new Calculator();
int result1 = calculator.add(1, 2); // 调用第一个 add 方法,输出 3
double result2 = calculator.add(1.0, 2.0); // 调用第二个 add 方法,输出 3.0
int result3 = calculator.add(1, 2, 3); // 调用第三个 add 方法,输出 6

覆盖(Overriding)

覆盖是指子类重新定义父类的方法,以实现自己的功能。当子类覆盖父类的方法时,方法名、参数列表和返回类型必须与父类完全相同。覆盖允许我们在不修改父类的基础上,定制子类的行为。

下面是一个覆盖的例子:

public class Animal {
    public void makeSound() {
        System.out.println("The animal makes a sound");
    }
}

public class Dog extends Animal {
    @Override
    public void makeSound() {
        System.out.println("The dog barks");
    }
}

public class Cat extends Animal {
    @Override
    public void makeSound() {
        System.out.println("The cat meows");
    }
}

在这个例子中,Dog 和 Cat 类都继承了 Animal 类,并分别覆盖了 makeSound 方法。当我们调用 makeSound 方法时,Java 会根据对象的实际类型选择正确的方法。

Animal myAnimal = new Animal();
myAnimal.makeSound(); // 输出 "The animal makes a sound"

Animal myDog = new Dog();
myDog.makeSound(); // 输出 "The dog barks"

Animal myCat = new Cat();
myCat.makeSound(); // 输出 "The cat meows"

注意,当子类覆盖父类的方法时,可以使用 @Override 注解来显式声明。这样,如果我们不小心修改了方法签名或者拼写错误,编译器会报错,帮助我们捕获潜在的错误。

总结一下,重载和覆盖是 Java 中两个重要的概念。重载允许我们在同一个类中定义多个同名但参数列表不同的方法,实现不同的功能。覆盖允许子类重新定义父类的方法,定制自己的行为。理解这些概念并在实际编程中应用它们,可以帮助我们编写更高效、易读的代码。

2.5. 重载与覆盖

2.5. 重载与覆盖

推荐阅读:

https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA

https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g文章来源地址https://www.toymoban.com/news/detail-464458.html

到了这里,关于2.5. 重载与覆盖的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

原文地址:https://www.cnblogs.com/yaoqian/p/17442976.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java_方法(重载方法签名等详解)

    在之前我们学习C语言时,当我们想要重复使用某段代码的功能时,我们会将这段代码定义为一个函数,而在java中我们把这段重复使用的代码叫做方法。 类体的内容分为变量的声明和方法的定义,方法的定义包括两部分:方法头和方法体。 // 方法定义 修饰符 返回值类型 方法

    2024年02月20日
    浏览(4)
  • Java:方法的重载

    在使用方法的过程中我们可能会遇到以下如同例子的情形: 在计算ret1时我们可以很容易得到结果,但在计算ret2时由于double转换到参数的int会有损失而报错,这里我们一般是再另外写一个方法,然后给两个方法起不同的名字: 这样做我们说确实能解决问题,但不友好的地方是

    2024年02月15日
    浏览(7)
  • Java-方法重载

    同一个类中,多个方法的名称相同,但是形参列表不同。 同一个类中,方法名称相同、形参列表不同 形参的个数、类型、顺序不同 形参的名称无关 当程序调用一个重载方法时,编译器会根据参数列表的不同自动匹配最合适的方法,这种机制叫做方法重载的“重载解析”。

    2024年02月02日
    浏览(11)
  • Python教程:方法重载

    方法重载在Python中起着关键作用。方法有时接受零参数,有时接受一个或多个参数。 当我们以不同的方式调用同一个方法时,这就被称为方法重载。Python不像其他语言那样默认支持重载方法。 在Python中,两个或多个方法不能有相同的名字,因为方法重载允许我们使同一个操

    2024年02月11日
    浏览(22)
  • 【JAVA】方法的使用:方法语法、方法调用、方法重载、递归练习

    🍉内容专栏:【JAVA从0到入门】 🍉本文脉络:JAVA方法的使用,递归练习 🍉本文作者:Melon_西西 🍉发布时间 :2023.7.19 目录 1. 什么是方法(method) 2 方法定义 2.1 方法定义语法格式  例子:两个数相加 例子:判断某一年是否为闰年并调用判断函数  2.2 方法定义注意事项 3 方法

    2024年02月14日
    浏览(10)
  • 【Java探索之旅】方法重载 递归

    2024年04月15日
    浏览(0)
  • 【Java基础篇】方法的使用(方法的重载和递归)

    作者简介: 辭七七,目前大一,正在学习C/C++,Java,Python等 作者主页: 七七的个人主页 文章收录专栏 :Java.SE,本专栏主要讲解运算符,程序逻辑控制,方法的使用,数组的使用,类和对象,继承和多态,抽象类和接口等内容 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖 在

    2024年02月09日
    浏览(14)
  • Java中方法的重载与重写

    提示:这里可以添加本文要记录的大概内容: 方法的重载与重写容易混,所以单独拿出来比较 提示:以下是本篇文章正文内容,下面案例可供参考 在同一个类中,允许定义一个以上同名的方法称为方法重载 方法重载的规则: 方法名相同 方法的参数必须不同,参数类型或参

    2024年02月08日
    浏览(8)
  • C#基础学习_方法的重载

    在类中定义方法的一般方式(不使用重载时):

    2024年02月13日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包