• 【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. }

    下一篇文章:权限修饰符

  • 相关阅读:
    VBA之正则表达式(36)-- 提取年份范围
    通过小程序实现会议Oa的会议展示以及个人中心
    C#学习系列相关之多线程(二)----Thread类介绍
    Linux环境redis外网连接配置
    虚拟机Ubuntu18 配置Samba共享设置
    基于Springboot实现商品进销存管理系统
    【求教】老菜鸟遇到新问题,双bug欢迎有緣人答疑
    OpenHarmony自定义组件介绍
    mybatis标签详解,一篇就够了
    Git 常用命令
  • 原文地址:https://blog.csdn.net/qq_57268251/article/details/133469951