TypechoJoeTheme

Clover 的博客

统计
登录
用户名
密码
/
注册
用户名
邮箱

CloverYou

日出于东却落于西,相识人海却散于席。

16、Java 方法覆盖

2022-01-02
/
0 评论
/
18 阅读
/
正在检测是否收录...
01/02
  1. 方法覆盖又被称为方法重写override
  2. 什么时候使用方法重写?

    • 当父类中的方法无法满足子类的业务需求,子有必要见父类中继承过来的方法进行重新编写,这个重新编写的过程称为方法重写、覆盖。
  3. 什么条件满足之后方法会发生重写?

    • 方法重写发生在具有关系的父子类之间。
    • 方法名相同、返回值类型相同、参数列表相同。
    • 访问权限不能更低,可以更高。
    • 抛出异常不能更多,可以更少。
  4. 注意:

    • 私有方法不能继承,所以不能覆盖。
    • 构造方法不能继承,所以不能覆盖。
    • 静态方法不存在覆盖。
    • 覆盖只针对方法,不针对属性。

有一个Animal类,里面有一个move方法

public class Animal {
  public void move(){
    System.out.println("动物在飞行!");
  }
}

Cat类继承了Animal,那么Cat可以使用move方法

public class Cat extends Animal {}

输出动物在飞行!

Cat cat = new Cat();
cat.move();

而猫会飞吗?它不会,Animal中的move方法已经无法满足Cat,这时需要重写Animal中的 `move方法

根据上面第3条第2项规则:

输出猫在地上走!

public class Cat extends Animal {
    public void move(){
        System.out.println("猫在地上走!");
    }
}

这时有一个Bird类也继承了Animal

public class Bird extends Animal {}

输出:

猫在地上走!
动物在飞行!

Cat cat = new Cat();
cat.move();
Bird bird = new Bird();
bird.move();
JAVA学习笔记
朗读
赞(0)
版权属于:

Clover 的博客

本文链接:

https://www.ctong.top/index.php/archives/23/(转载时请注明本文出处及文章链接)

评论 (0)
CloverYou
日出于东却落于西,相识人海却散于席。
88 文章数
11 评论量
IP信息

人生倒计时

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月

最新回复

  1. 缓存一致性 - 点击领取
    2022-01-06
  2. 宝宝
    2022-01-02

标签云