IT培训-高端面授IT培训机构
云和教育:云和数据集团高端IT职业教育品牌 全国咨询热线:0371-67988003
课程 请选择课程
    校区 请选择校区
      • 华为
        授权培训中心
      • 腾讯云
        一级认证培训中心
      • 百度营销大学
        豫陕深授权运营中心
      • Oracle甲骨文
        OAEP中心
      • Microsoft Azure
        微软云合作伙伴
      • Unity公司
        战略合作伙伴
      • 普华基础软件
        战略合作伙伴
      • 新开普(股票代码300248)
        旗下丹诚开普投资
      • 中国互联网百强企业锐之旗
        旗下锐旗资本投资
      当前位置:
      首页IT问答正文

      在Java中,什么时候用重载,什么时候用重写?

      • 发布时间:
        2023-03-31
      • 版权所有:
        云和教育
      • 分享:

      在Java中,重载(overloading)和重写(overriding)是两个不同的概念,它们的应用场景也不同。

      重载是指在同一个类中定义了多个方法,它们的方法名相同但参数列表不同。重载的目的是方便程序员,使得程序代码更加简洁,更易读懂。

      重写是指子类重写了父类的方法,方法名和参数列表都相同。重写的目的是为了改变父类方法的行为,实现多态性。

      下面是一些示例代码:

      重载的例子:

      public class OverloadExample {
          public void print(int i) {
              System.out.println("Integer: " + i);
          }
          
          public void print(double d) {
              System.out.println("Double: " + d);
          }
          
          public void print(String s) {
              System.out.println("String: " + s);
          }
      }
      
      // 在其他类中使用 OverloadExample 中的方法
      OverloadExample oe = new OverloadExample();
      oe.print(1);
      oe.print(2.0);
      oe.print("hello");

      上述代码中,OverloadExample 类中定义了三个方法,分别使用了不同的参数类型。在其他类中,可以通过对象oe调用这些方法,Java会根据传入的参数类型选择合适的方法进行调用。

      重写的例子:

      public class Animal {
          public void speak() {
              System.out.println("I am an animal");
          }
      }
      
      public class Cat extends Animal {
          @Override
          public void speak() {
              System.out.println("I am a cat");
          }
      }
      
      // 在其他类中使用 Cat 中的方法
      Animal animal = new Cat();
      animal.speak();

      上述代码中,Animal类中定义了一个speak方法,Cat类继承了Animal类并重写了speak方法。在其他类中,可以创建一个Cat对象,并将其赋值给Animal类型的变量animal。调用animal的speak方法时,实际上调用的是 Cat类中重写的speak方法。这就体现了多态性的特点。