方法的重写与重载


概述

  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
定义 方法名称相同,参数的类型和个数不同 方法名称、参数类型、返回值类型全部相同
权限 对权限没有要求 被重写发方法不能拥有比父类更加严格的权限
范围 发生在一个类中 发生在继承中
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容