Java中的方法重载和函数重写的区别
发布时间:2023-09-07 08:39:17
方法重载和函数重写是两个不同的概念和用法,用来实现不同的功能。
方法重载(Method Overloading)指的是在同一个类中,可以有多个方法名称相同但参数列表不同的方法。方法重载可以发生在同一个类中,也可以发生在继承关系的子类中。方法重载的特点有:
1. 方法名称相同。
2. 参数列表不同,主要包括参数数量、参数类型和参数顺序。
3. 方法重载的目的是为了提供一种更方便的方式来调用同一功能的多个方法。
方法重载的例子:
public class OverloadExample {
public void print(int num) {
System.out.println("Printing int: " + num);
}
public void print(String str) {
System.out.println("Printing string: " + str);
}
public void print(int num1, int num2) {
System.out.println("Printing two int: " + num1 + " " + num2);
}
}
函数重写(Method Overriding)指的是在继承关系中,子类可以重写父类中的方法,使其具有不同的实现。函数重写必须发生在继承关系中,即存在父类和子类的关系。函数重写的特点有:
1. 方法名称相同。
2. 参数列表相同。
3. 子类重写的方法的返回类型可以是子类类型或其子类类型,但不能是父类类型。
4. 函数重写的目的是为了改变父类方法的实现,以适应子类的特性。
函数重写的例子:
public class Animal {
public void sound() {
System.out.println("Animal makes sound...");
}
}
public class Cat extends Animal {
@Override
public void sound() {
System.out.println("Cat meows...");
}
}
总结:
方法重载和函数重写是Java中两种不同的机制。方法重载发生在同一个类中,用于提供一种更方便的方式调用同一功能的多个方法,参数列表不同;函数重写发生在继承关系中,用于改变父类方法的实现,参数列表相同,返回类型可以是子类类型,目的是适应子类的特性。
