• 【Java】方法重写


    目录

    概述

     方法重写-示例代码

    方法重写注意事项

    示例代码


    概述

    子类中出现了和父类一模一样的方法

    当子类需要父类的功能,而功能主体中,子类有自己独特的内容,就可以通过重写父类中的方法,这样即延续了父类的功能,又定义了自己的特有内容

    @Override

    是一个注解,可以帮我们检查重写方法声明的正确性

     方法重写-示例代码

    Phone.java

    1. package com.面向对象.Demo9;
    2. public class Phone {
    3. /**
    4. * 方法的重写
    5. * @param name 用什么手机拨打电话
    6. */
    7. public void call(String name) {
    8. System.out.println("父类:"+name + ",手机在拨打电话");
    9. }
    10. }

    NewPhone.java

    1. package com.面向对象.Demo9;
    2. public class NewPhone extends Phone {
    3. /**
    4. * 什么是方法重写呢?
    5. * 在父类中定义的方法 子类中 实现了重写
    6. * 父类中和子类中出现了一样的方法声明
    7. * 延续父类的功能,实现扩展
    8. * @param name 用什么手机拨打电话
    9. */
    10. @Override
    11. public void call(String name){
    12. System.out.println("子类: call方法,NewPhone:"+name+" 是可以支持 视频通话");
    13. super.call("xiaomi");
    14. }
    15. /**
    16. * 方法重写-注意事项
    17. * 方法的 方法名称(参数列表)必须与 父类中的保持一致
    18. */
    19. }

    NewPhoneDemo.java

    1. package com.面向对象.Demo9;
    2. public class NewPhoneDemo {
    3. public static void main(String[] args) {
    4. NewPhone newPhone = new NewPhone();
    5. newPhone.call("iPhone"); // 子类: call方法,NewPhone:iPhone 是可以支持 视频通话
    6. //父类:xiaomi,手机在拨打电话
    7. }
    8. }

    方法重写注意事项

    这部分内容属于权限修饰符

    • (子类的方法不能被重写)父类中私有方法,子类不能被继承
    • 子类方法访问权限不能比父类低(public > protected > default > private)

    示例代码

    Parent.java

    1. package com.面向对象.Demo12;
    2. public class Parent {
    3. public void a1(){}
    4. private void a2(){}
    5. public void a4(){}
    6. void a5(){}
    7. protected void a6(){}
    8. }

    Student.java

    1. package com.面向对象.Demo12;
    2. public class Student extends Parent {
    3. /**
    4. * 方法重写的注意事项
    5. * 1.父类中的私有方法 子类是无法重写的。=>父类中私有方法,子类不能被继承
    6. * 2.子类方法访问权限不能比父类低(public > protected > default > private)
    7. */
    8. @Override
    9. public void a1() {}
    10. // @Override // 报错,父类中的私有方法 子类是无法重写的,下面这个方法无法重写父类的a2()
    11. public void a2() {}
    12. // @Override // 报错,父类没有a3()
    13. public void a3() {}
    14. // @Override
    15. // private void a4() {} //报错,∵父类是public (public > protected > default > private)
    16. @Override
    17. public void a5() {}
    18. @Override
    19. protected void a6() {} //访问a6(),只能用public,protected
    20. }

    下一篇文章:权限修饰符

  • 相关阅读:
    LuatOS-SOC接口文档(air780E)--keyboard - 键盘矩阵
    TensorBoard可视化处理案例简析
    从编写TcpStatC谈c++代码改写为masm32代码的两个需要注意的地方
    MySQL 索引
    欧拉图(Euler Graph)
    【软件测试】不想变成打螺丝的测试打工人,自我改变提升自动化测试......
    021_SSSS_Diffusion Models Already Have a Semantic Latent Space
    视频汇聚平台EasyCVR对接GA/T 1400视图库:结构化数据(人员/人脸、车辆、物品)对象XMLSchema描述
    R语言VLOOKUP数据匹配
    [Linux]-----进程信号
  • 原文地址:https://blog.csdn.net/qq_57268251/article/details/133469951