【JAVA】关于重写(Override)与重载(Overload)

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

在这里插入图片描述


个人主页【个人主页】
系列专栏【❤️初识JAVA】


文章目录


前言

关于JAVA我们也已经学习过一段时间了今天我们来学习一下在JAVA中方法的重载与重写。
在这里插入图片描述


方法重载Overload

方法重载overload是指在一个类中定义多个同名但参数列表不同的方法。Java编译器会根据方法调用时传递的参数来选择调用哪个方法。方法重载的优势在于可以为相似功能的方法提供统一的方法名方便代码编写和维护

重载的规则

  1. 方法名必须相同。
  2. 参数列表必须不同个数、类型、顺序。
  3. 方法的返回类型可以相同也可以不同。
  4. 不能仅依据返回类型的不同来重载方法。

示例代码

public class Calculator {
    public int add(int a, int b) {
        return a + b;
    }
    public double add(double a, double b) {
        return a + b;
    }
    public int add(int a, int b, int c) {
        return a + b + c;
    }
}

在这个示例中我们定义了三个名为add的方法它们的参数列表不同。当需要调用add方法时Java编译器会根据传入的参数类型和数量选择正确的方法进行调用。例如add(1,2)会调用第一个add方法add(1.0,2.0)会调用第二个add方法。


方法重写Override

在 Java 中方法重写是指子类覆盖了父类中具有相同名称、参数列表和返回类型的方法。重写方法的目的是为了改变方法的实现让子类的方法能够满足自己的需求并且能够替换父类中的同名方法

重写的规则

  1. 方法名称、参数列表和返回类型必须与父类中的方法相同。
  2. 子类中重写的方法的访问修饰符不能低于父类中被重写的方法的访问修饰符。
  3. 子类中重写的方法不能抛出比父类中被重写的方法声明的更多的异常类型。
  4. 子类中无法重写父类中被声明为 final 的方法。

示例代码

class Animal {
   public void move() {
      System.out.println("动物可以移动");
   }
}

class Dog extends Animal {
   public void move() {
      System.out.println("狗可以跑和走");
   }
}

public class TestDog {

   public static void main(String args[]) {
      Animal a = new Animal(); // Animal 对象
      Animal b = new Dog(); // Dog 对象

      a.move(); // 执行 Animal 类的方法
      b.move(); // 执行 Dog 类的方法
   }
}

在这里插入图片描述

在上面的例子中Animal 类有一个 move() 方法。在 Dog 类中我们重写了这个方法并且定义了新的实现方式。在 main() 方法中我们创建了一个 Animal 类型的对象和一个 Dog 类型的对象。通过调用它们的 move() 方法我们可以看到当调用 Animal 类型的对象时执行的是 Animal 类中的方法而当调用 Dog 类型的对象时执行的是 Dog 类中的方法。这就是方法重写的作用。

方法重载与方法重写的区别

在这里插入图片描述

方法重载指在同一个类中定义多个同名方法但它们的参数列表不同参数类型、参数个数、参数顺序不同。Java 编译器会根据不同的参数列表来区分和调用不同的方法。在方法重载中方法名相同但参数列表不同返回类型可以相同也可以不同

方法重载是在同一个类中出现方法名相同但参数列表不同方法重写是在父类和子类之间出现方法名、参数列表和返回值类型必须相同。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Java