Java 中重写和重载的区别

在 Java 中,重写和重载是两个常用的概念,它们都涉及到方法的使用和定义。

下面我们来总结一下它们之间的区别。

1. 重写:

  1. 定义:子类重新定义父类中已有的方法,方法名、返回类型和参数列表必须与父类中的方法相同。

  2. 作用:主要用于改变或扩展父类方法的行为。

  3. 运行时多态性:重写是一种动态绑定,在运行时根据对象的实际类型决定调用哪个方法。

示例

class Animal {
    public void makeSound() {
        System.out.println("Some generic sound");
    }
}

class Dog extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Bark!");
    }
}

2.重载:

  1. 定义:在同一个类中,可以定义多个方法名相同但参数列表不同的方法。

  2. 条件:方法名相同,但参数列表不同,包括参数类型、参数个数或参数顺序。

  3. 编译时多态性:重载是一种静态绑定,编译器根据调用的方法和提供的参数类型确定要调用的方法。

示例

public void doSomething(int num) {
    // do something with an integer
}

public void doSomething(String str) {
    // do something with a string
}

3. 总结:

  • 重载 是在同一个类中多态性的表现,重写 是子类对父类的继承特性的表现。

  • 重载 是编译时的多态性(静态绑定),重写 是运行时的多态性(动态绑定)。

  • 重载 是通过方法名和参数列表来区分不同的方法,重写 是通过子类覆盖父类的方法。

原文始发于微信公众号(Coder香):Java 中重写和重载的区别

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/217529.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!