方法重载和方法重写的概念与实现
发布时间:2023-11-28 20:35:12
方法重载和方法重写是面向对象编程中常用的两个概念。
方法重载(Method Overloading)是指在一个类中,出现了多个同名方法,但是其参数类型、个数或顺序不同。方法重载可以让我们用一个方法名来表示一组相似的操作,从而提高代码的可读性和便利性。方法重载的实现是在同一个类中定义多个方法,并且它们有相同的方法名,但是参数列表不同。例如:
public int add(int a, int b) {
return a + b;
}
public double add(double a, double b) {
return a + b;
}
在上面的例子中,分别定义了两个名为add的方法,一个参数类型为int,另一个参数类型为double。这样,在调用add方法时可以根据参数类型的不同来自动选择合适的方法进行调用。
方法重写(Method Overriding)是指子类重新定义父类中已有的方法,使得其具有不同的实现。方法重写允许我们在子类中对父类的方法进行重新定义,从而实现多态性。方法重写的实现是在子类中定义一个与父类中已有的方法具有相同的方法签名(即方法名称、返回类型和参数列表)的方法,并且在方法体中提供新的实现。例如:
class Animal {
public void sound() {
System.out.println("Animal makes sound");
}
}
class Dog extends Animal {
@Override
public void sound() {
System.out.println("Dog barks");
}
}
在上面的例子中,Animal类有一个名为sound的方法,而Dog类继承自Animal类,并且重新定义了sound方法。当我们创建一个Dog对象并调用sound方法时,会输出"Dog barks",而不是"Animal makes sound"。这就是方法重写的效果。
总结起来,方法重载是指在同一个类中定义多个同名方法,但是参数列表不同,而方法重写是指子类重新定义父类中已有的方法,使得其具有不同的实现。方法重载可以让我们用一个方法名来表示一组相似的操作,从而提高代码的可读性和便利性;方法重写可以让子类对父类的方法进行重新定义,实现多态性。
