【Java】方法的重载与重写

目录

一、 方法的重写

1.重写的定义:

2.重写的规则: 

二、方法的重载 

1.重载的定义: 

2.重载的规则: 

三、两者区别

 


一、 方法的重写

1.重写的定义:

重写(override):也称为覆盖。重写是子类对父类非静态、非private修饰,非final修饰,非构造方法等的实现过程 进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!重写的好处在于子类可以根据需要,定义特定 于自己的行为。 也就是说子类能够根据需要实现父类的方法。

2.重写的规则: 

  • 子类在重写父类的方法时,一般必须与父类方法原型一致: 返回值类型 方法名 (参数列表) 要完全一致
  • 被重写的方法返回值类型可以不同,但是必须是具有父子关系的 
  • 访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类方法被public修饰,则子类中重写该方 法就不能声明为 protected
  • 父类被static、private修饰的方法、构造方法都不能被重写。
  • 重写的方法, 可以使用 @Override 注解来显式指定. 有了这个注解能帮我们进行一些合法性校验. 例如不小心 将方法名字拼写错了 (比如写成 aet), 那么此时编译器就会发现父类中没有 aet 方法, 就会编译报错, 提示无法 构成重写

二、方法的重载 

1.重载的定义: 

 方法的重载:是指方法名相同,但参数列表不同(参数个数不同,参数类型不同,参数顺序不同,这个顺序不同要注意,是得两个参数类型不同时,顺序不同才有意义),构造方法是可以构成方法重载的,且父类和子类之间是可以构成方法重载的。还有重载和返回类型是无关的

2.重载的规则: 

  • 在同一个类中
  • 方法名相同
  • 形参列表不同(个数,类型,顺序)
  • 方法的重载和返回值类型无关,和权限修饰符也无关  

【Java】方法的重载与重写_第1张图片

三、两者区别

区别 重写(override) 重载(override)
参数列表 一定不能修改 必须修改
返回类型 一定不能修改【除非可以构成父子类关系】 可以修改
访问限定符 一定不能做更严格的限制(可以降低限制) 可以修改

你可能感兴趣的:(JAVA,java,开发语言,学习)