Java教程-Java中方法重载和方法重写的区别

java中的方法重载和方法重写有很多区别。
下面列出了方法重载和方法覆盖之间的差异:
No. | 方法重载 | 方法覆盖 |
---|---|---|
1) | 方法重载用于增加程序的可读性。 | 方法覆盖用于提供其超类已经提供的方法的具体实现。 |
2) | 方法重载在类中执行。 | 方法覆盖发生在具有 IS-A(继承)关系的两个类中。 |
3) | 在方法重载的情况下,参数必须不同。 | 在方法覆盖的情况下,参数必须相同。 |
4) | 方法重载是编译时多态性的一个例子。 | 方法覆盖是运行时多态性的一个例子。 |
5) | 在java中,方法重载不能仅仅通过改变方法的返回类型来实现。方法重载中的返回类型可以相同或不同。但是您必须更改参数。 | 方法覆盖中的返回类型必须相同或协变。 |
Java 方法重载示例
class OverloadingExample{
static int add(int a,int b){return a+b;}
static int add(int a,int b,int c){return a+b+c;}
}
Java 方法覆盖示例
class Animal{
void eat(){System.out.println("eating...");}
}
class Dog extends Animal{
void eat(){System.out.println("eating bread...");}
}