java中方法重载和方法重写的不同之处
java中方法重载和方法重写的不同点
下文将使用列表的方式讲述其不同之处,如下所示:编号 | 方法重载 | 方法重写 |
---|---|---|
1 | 方法重载用于提高程序的可读性 | 方法重写用于提供已经由其超类提供的方法的特定实现 |
2 | 方法重载在类内执行 | 方法重写发生在具有IS-A(继承)关系的两个类中 |
3 | 在方法重载的情况下,参数必须不同 | 在方法重写的情况下,参数必须相同 |
4 | 方法重载是编译时多态性的例子 | 方法重写/覆盖是运行时多态性的例子 |
5 | 在java中,方法重载不能仅通过改变方法的返回类型来执行。方法重载中的返回类型可以相同或不同。 但是必须更改参数类型。 | 在方法重写/覆盖中返回类型必须相同或协变 |
Java方法重载示例
class testClass{
static int sum(int x, int y) {
return x + y;
}
static int sum(int x, int y, int z) {
return x + y + z;
}
}
Java方法覆盖示例
class parentClass{
void run() {
System.out.println("run1...");
}
}
class subClass extends parentClass{
void run() {
System.out.println("run2...");
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。