方法重写/覆盖(override)

方法重写/覆盖(override)

基本介绍 :

简单来说 ,方法覆盖(重写)就是子类有一个方法 ,和父类的某个方法的名称返回类型 ,参数一致 ,那么就可以说子类的这个方法 覆盖了父类的那个方法

入门 :

//com.edu.override_ 包下的 Override01.java

• 注意事项和使用细节

方法重写也叫方法覆盖,需要满足下面的条件 //Animal.java Dog.java

  1. 子类的方法的参数,方法名称,要和父类方法的参数,方法名称完全一样。

  2. 子类方法的返回类型和父类方法返回类型一样,或者是父类返回类型的子类 比如 父类 返回类型是 Object ,子类方法返回类型是String

    public Object getInfo()  , public String getInfo()
    //这里由于子类的返回类型String是父类返回类型的Object的子类 ,因此也可以
    //注意:如果把二者调换过来 ,子类返回Object父类返回String的话就会报错了
    //这是因为不符合父类的返回类型是子类返回类型的父类
  3. 子类方法不能缩小父类方法的访问权限

    例如 ,前面我们学习过 ,public是访问权限最大的 ,如果父类方法采用的是这个权限 ,子类的同名方法就不可以使用 例如 protected private 这些访问修饰符 ,不然就会报错

练习

对方法的重写和重载做一个比较

名称发生范围方法名参数列表(形参列表)返回类型修饰符
重载(overload) 本类 必须一样 类型, 个数 ,顺序 ,至少有一个不同(即不能完全一致) 没有要求 无要求
重写(override) 父子类 必须一样 必须一致 子类重写的方法返回的类型和父类返回的类型一致 ,或者是其子类 子类方法不能缩小父类方法的访问范围
题2

OverrideExercise.java

  1. 编写一个Person类,包括属性/private(name、age),构造器、方法say(返回自我介绍的字符串)

  2. 编写一个Student类,继承Person类,增加id、score属性/private,以及构造器,定义say方法(返回自我介绍的信息)。

  3. 在main中,分别创建Person和Student对象调用say方法输出自我介绍。

posted @   comia  阅读(117)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示