橘子味的心
标题:java中方法重载和方法重写的区别

java中的方法重载和方法重写有很多区别。 下面给出了方法重载和方法覆盖之间的差异列表:

编号 方法重载 方法重写
1 方法重载用于提高程序的可读性。 方法重写用于提供已经由其超类提供的方法的特定实现。
2 方法重载在类内执行。 方法重写发生在具有IS-A(继承)关系的两个类中。
3 在方法重载的情况下,参数必须不同。 在方法重写的情况下,参数必须相同。
4 方法重载是编译时多态性的例子。 方法重写/覆盖是运行时多态性的例子。
5 在java中,方法重载不能仅通过改变方法的返回类型来执行。方法重载中的返回类型可以相同或不同。 但是必须更改参数类型。 在方法重写/覆盖中返回类型必须相同或协变。

Java方法重载示例

  1. class OverloadingExample {
  2. static int add(int a, int b) {
  3. return a + b;
  4. }
  5.  
  6. static int add(int a, int b, int c) {
  7. return a + b + c;
  8. }
  9. }
  10. Java

Java方法覆盖示例

  1. class Animal {
  2. void eat() {
  3. System.out.println("eating...");
  4. }
  5. }
  6.  
  7. class Dog extends Animal {
  8. void eat() {
  9. System.out.println("eating bread...");
  10. }
  11. }
  12. Java