996、重载与重写

100 阅读1分钟

"重载"(Overloading)和"重写"(Overriding)是面向对象编程中两个常用的概念,它们分别用于描述不同的特性。

  1. 重载(Overloading)

    • 定义: 重载指的是在同一个类中,可以定义多个具有相同名字但参数列表不同的方法。参数列表可以包括参数的类型、个数或者顺序。

    • 特点: 重载允许一个类有多个方法,它们的名字相同但是参数不同。编译器根据调用时的参数列表来区分调用哪个方法。

    • 示例:

      public class Calculator {
          public int add(int a, int b) {
              return a + b;
          }
      
          public double add(double a, double b) {
              return a + b;
          }
      }
      
  2. 重写(Overriding)

    • 定义: 重写是指在子类中重新定义父类中已经定义的方法,但方法名、返回类型和参数列表必须相同。

    • 特点: 重写用于实现多态,通过子类对象调用被重写的方法时,实际执行的是子类中的方法,而不是父类中的方法。

    • 示例:

      class Animal {
          public void makeSound() {
              System.out.println("Animal makes a sound");
          }
      }
      
      class Dog extends Animal {
          @Override
          public void makeSound() {
              System.out.println("Dog barks");
          }
      }
      

总体而言,重载强调的是同一个类中方法名相同但参数不同,而重写强调的是子类覆盖父类中的方法,实现多态的特性。这两个概念都是面向对象编程中的重要概念,用于提高代码的灵活性和可维护性。