首页 > Java > java教程 > 方法重载和重写有什么区别?

方法重载和重写有什么区别?

Mary-Kate Olsen
发布: 2024-11-09 12:17:02
原创
549 人浏览过

What's the difference between method overloading and overriding?

方法重载与重写

方法重载和重写是面向对象编程中两个不同的概念,它们有一个共同点:它们都涉及重新定义类中的方法。但是,它们的目的和实现有很大不同。

方法重载

当一个类声明多个具有相同名称但参数列表不同的方法时,就会发生方法重载。它使单个方法能够根据提供的参数的类型和数量执行不同的任务。例如:

public void foo(int a) { ... }
public void foo(int a, float b) { ... }
登录后复制

在此示例中,该类定义了 foo 方法的两个版本,它们所采用的参数数量不同。调用 foo 方法时,编译器根据传递的参数确定要调用哪个版本。

方法重写

方法重写,另一方面,涉及重新定义子类中具有相同参数列表的方法。与重载不同,当子类想要提供从父类继承的方法的自己的实现时,就会发生重写。为此,子类必须使用 @Override 注解来指示它正在重写现有方法:

class Parent {
    void foo(double d) { ... }
}

class Child extends Parent {

    @Override
    void foo(double d) { ... }
}
登录后复制

在此示例中,子类重写从父类继承的 foo 方法。当 Child 类的实例调用 foo 方法时,将执行 Child 类中重写的实现。

以上是方法重载和重写有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板