Saul's blog Saul's blog
首页
后端
分布式
前端
更多
分类
标签
归档
友情链接
关于
GitHub (opens new window)

Saul.J.Wu

立身之本,不在高低。
首页
后端
分布式
前端
更多
分类
标签
归档
友情链接
关于
GitHub (opens new window)
  • Java入门基础

    • 计算机常识

    • Java语言概述

    • 基本语法

    • 数组

    • 面向对象

      • 面向对象
      • 类和对象
      • 类的成员-属性
      • 类的成员-方法
      • 类的成员-构造器
      • 面向对象特性-封装
      • this关键字
      • package关键字
      • import关键字
      • 面向对象特征-继承
      • 方法的重写
        • 定义
        • 要求
        • 注意
        • 面试题
        • 小技巧
      • 访问权限修饰符
      • super关键字
      • 子类对象实例化的全过程
      • 面向对象特征-多态
      • 强制类型转换
      • Object类
      • 包装类
      • static关键字
      • 单例设计模式
      • main方法
      • 类的成员-代码块
      • final关键字
      • 抽象类与抽象方法
      • 接口
      • 类的成员-内部类
    • 异常处理

  • Java核心基础

  • 设计模式

  • Web开发

  • SpringBoot

  • 微服务

  • Elasticsearch

  • 运维

  • 后端
  • Java入门基础
  • 面向对象
SaulJWu
2020-12-11

方法的重写

方法的重写(override/overwrite)

# 定义

在子类中可以根据需要对从父类中继承来的方法进行改造,也称为方法的重置、覆盖。在程序执行时,子类的方法将覆盖父类的方法。

# 要求

  • 子类重写的方法必须和父类被重写的方法具有相同的方法名称、参数列表
  • 子类重写的方法的返回值类型不能大于父类被重写的方法的返回值类型
    • 比如父类返回A类,那么子类可以是A类或者A的子类
    • 如果父类返回的是基本数据类型,那么子类也必须返回这种基本数据类型
  • 子类重写的方法使用的访问权限不能小于父类被重写的方法的访问权限
    • 子类不能重写父类中声明为private权限的方法
    • 除了private,子类的访问权限大于等于父类被重写的方法的访问权限(public>protectd>default>private)
  • 子类方法抛出的异常不能大于父类被重写方法的异常

# 注意

子类与父类中同名同参数的方法必须同时声明为非static的(即为重写),或者同时声明为static的(不是重写)。因为static方法是属于类的,子类无法覆盖父类的方法。

如果父类和子类同时声明static,那么不是重写。

# 面试题

区分方法的重载与重写

在同一个类中,存在多个同名的方法,方法的参数个数或者参数类型不同,与返回值无关,这叫做重载。

在子类中,对从父类中继承来的方法进行改造,并且和父类被重写的方法具有相同的方法名称、参数列表,这叫方法的重写

# 小技巧

如果你真的想重写父类的方法,那么最好不要手写,因为可能存在人工手误,所以这时最好直接去父类中直接复制,粘贴在子类中,再编写方法体。或者使用ide开发集成工具自动生成。

帮我改善此页面 (opens new window)
#重写#override#overwrite
上次更新: 2020/12/18, 12:50:58
面向对象特征-继承
访问权限修饰符

← 面向对象特征-继承 访问权限修饰符→

最近更新
01
zabbix学习笔记二
02-28
02
zabbix学习笔记一
02-10
03
Linux访问不了github
12-08
更多文章>
Theme by Vdoing | Copyright © 2020-2022 Saul.J.Wu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式