方法重写(覆写)

104 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第15天,点击查看活动详情 在前面当子类继承父类时,子类可能在继承父类的某些方法时,可能父类中对应的方法的功能有不足,这是,我们又不想去在创建一个新方法了,就可以在继承父类相应的方法时,对其添加更多的功能,这就是我们这里阐述的方法重写覆盖)。

方法重写

概念:

子类有一个方法和父类的而某个方法的名称、返回类型、参数一样,这就叫子类覆盖了父类的方法,也就是现在的方法重写了原有的方法。

细节注意:

  • 子类的方法的形参列表、方法名称,要求和父类方法的形参列表、方法名称完全一样;
  • 子类的返回类型要求和父类返回类型一样,或者其返回类型为父类的子类;
  • 子类重写父类的方法,但是不能缩小父类对应方法的访问权限。(public>protected>defalut(默认)>private)

这里我们将对比方法重写和方法重载来加深学习:

分为以下五个方面:

  1. *使用范围:*方法重载:在当前类里;方法重写:父子类;
  2. *方法名:*两者的方法名都保持一样;
  3. 形参列表:方法重载:类型,个数或者顺序至少有一个不同(简单来说就是参数列表不完全相同);方法重写:参数列表完全相同;
  4. *返回类型:方法重载:没有要求(重载不根据返回类型判断);方法重写:子类的返回类型要么是其父类的子类,要么就和父类的返回类型保持一致; 5. 修饰符:*方法重载:没有要求(在前面细致讲解时,没有涉及);方法重写:子类的方法不能缩小父类的访问范围。

代码演示:

image.png

image.png