如何通过代码实例详细解析Java中的方法重写与重载的区别?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1492个文字,预计阅读时间需要6分钟。
重载(Overloading)和重写(Overriding)是Java中两个重要的概念。新手可能会觉得它们容易混淆。下面通过两个简单的例子来说明它们之间的区别。
定义:- 重载:同一个类中,多个方法名相同,但参数列表不同(参数类型、数量或顺序不同)。
例子:javapublic class Calculator { public int add(int a, int b) { return a + b; }
public double add(double a, double b) { return a + b; }}
在这个例子中,`add` 方法被重载了两次,一次接受两个 `int` 参数,另一次接受两个 `double` 参数。
- 重写:子类继承父类后,使用与父类相同的方法名、返回类型和参数列表,但具有不同的实现。
例子:javapublic class Animal { public void makeSound() { System.out.println(Animal makes a sound); }}
public class Dog extends Animal { @Override public void makeSound() { System.out.println(Dog barks); }}
在这个例子中,`Dog` 类重写了 `Animal` 类的 `makeSound` 方法。
区别:- 重载发生在同一个类中,而重写发生在父类和子类之间。- 重载方法具有相同的返回类型,而重写方法必须具有与父类方法相同的返回类型。
本文共计1492个文字,预计阅读时间需要6分钟。
重载(Overloading)和重写(Overriding)是Java中两个重要的概念。新手可能会觉得它们容易混淆。下面通过两个简单的例子来说明它们之间的区别。
定义:- 重载:同一个类中,多个方法名相同,但参数列表不同(参数类型、数量或顺序不同)。
例子:javapublic class Calculator { public int add(int a, int b) { return a + b; }
public double add(double a, double b) { return a + b; }}
在这个例子中,`add` 方法被重载了两次,一次接受两个 `int` 参数,另一次接受两个 `double` 参数。
- 重写:子类继承父类后,使用与父类相同的方法名、返回类型和参数列表,但具有不同的实现。
例子:javapublic class Animal { public void makeSound() { System.out.println(Animal makes a sound); }}
public class Dog extends Animal { @Override public void makeSound() { System.out.println(Dog barks); }}
在这个例子中,`Dog` 类重写了 `Animal` 类的 `makeSound` 方法。
区别:- 重载发生在同一个类中,而重写发生在父类和子类之间。- 重载方法具有相同的返回类型,而重写方法必须具有与父类方法相同的返回类型。

