方法的重写与重载


概述

  1、什么叫方法的重载?
  在一个类中,拥有同一个方法名称,但是 参数个数不同 和 参数类型不同 的方法,就叫方法的重载。

public class Perple {
  public void tell() {}
  // 重载 tell() 方法
  public void tell(String name) {}
  // 重载 tell() 方法
  public void tell(String name, int age) {}
  // 重载 tell() 方法
  public void tell(String name, int age, String address) {}
}

  2、什么叫方法的重写?
  类与类之间存在单继承的关系,子类拥有与父类相同的方法,包括( 方法名称、参数类型、返回值类型全部相同 ) 就叫方法的重写。

public class A {
  public void tell() {
    System.out.println("我是父亲类A!");
  }
}

public class B extends A {
  // 重写父类的 tell() 方法
  public void tell() {
    System.out.println("我是子类B!");
  }
}

方法的重写

  1、在继承中,存在着重写的概念,其实就是子类定义了和父类同名的方法。
  2、定义:方法名称相同,返回值类型相同,参数也相同。
  3、访问权限:private < default < public
  4、重写限制:被子类重写的方法不能拥有比父类更加严格的访问权限

public class People {
  void say() {} // 父类 say 方法,访问权限为 default
}

public class Student {
  private void say {} // 会报错,private 的访问权限 比 default 更加严格
  void say() {} // 不会报错,重写的 访问权限与父类相同
  public void say() {} // 不会报错,重写的 访问权限 大于 父类访问权限
}

super 关键字

  1、super关键字 强行调用父类方法进行执行 。
  2、super不一定在重写中进行使用,也可以表示那些方法时从父类中继承而来的。

final 关键字

  1、final关键字在java中被称为完结器,表示最终的意思。
  2、final能声明 类、方法、属性
    使用final声明的 类不能被继承
    使用final声明的 方法不能被重写
    使用final声明的变量是常量,常量是不可以被修改的

重写与重载的区别

区别点 重载 重写
单词 Overloading Overriding
定义 方法名称相同,参数的类型和个数不同 方法名称、参数类型、返回值类型全部相同
权限 对权限没有要求 被重写发方法不能拥有比父类更加严格的权限
范围 发生在一个类中 发生在继承中
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容