文章目录

  • 覆写(override) 存在于子类与父类间
  • 重载(overload) 存在于类内部
  • 隐藏(hide) 存在于子类和父类间
  • 遮蔽 (shadow) 存在于 类内部
  • 遮掩(obscure) 存在于类内部

覆写(override) 存在于子类与父类间

一个实例方法可以覆写(override) 在其超类中可以访问到(非private)的具有相同签名的实例方法(非static), 从而使能动态分配(dynamic dispatch) ; 换句话说, VM 将基于实例的运行期类型来选择要调用的覆写方法, 覆写的好处在于子类可以根据需要, 定义特定于自己的行为.

重载(overload) 存在于类内部

在某个类中的方法可以重载(overload)另一个方法, 只要它们具有相同的名字和不同签名.由调用所指定的重载方法是在编译期选定的.

隐藏(hide) 存在于子类和父类间

一个属性, 静态方法或内部类可以分别隐藏(hide) 在其超类中可以访问到的具有相同名字(对方法而言就是相同的方法签名)的所有属性, 方法或者内部类. 上述成员被隐藏后, 将阻止其被继承.
方法签名: 方法名称 + 参数类型

遮蔽 (shadow) 存在于 类内部

一个变量, 方法或类 可以分别 遮蔽(shadow) 在类内部具有相同名字的变量, 方法 或类. 如果一个实体被遮蔽了, 那么就无法用简单名引用到它, 简单名将引用到遮蔽声明中的实体

遮掩(obscure) 存在于类内部

一个变量可以遮掩具有相同名字的一个类, 只要它们都在同一个范围内:
如果这个名字被用于变量与类都许可的范围, 那么它将引用到变量上.
相似的, 一个变量或一个类型可以遮掩一个包.
遮掩是唯一一种两个名字位于不同的名字空间的名字重用形式, 这些名字空间包括: 变量, 包, 方法 或 类型.
如果一个类或一个包被遮掩了, 那么你不能通过其简单名引用到它, 除非是在这样一个上下文环境中 , 即语法只允许在其名字空间中出现一种名字.

Java 之 覆写, 重载, 隐藏, 遮蔽, 遮掩相关推荐

  1. [改善Java代码]覆写equals方法必须覆写hashCode方法

    覆写equals方法必须覆写hashCode方法,这条规则基本上每个Javaer都知道,这也是JDK API上反复说明的,不过为什么要这样做呢?这两个方法之间有什么关系呢?本建议就来解释该问题,我们先 ...

  2. java 中覆 写tostring_如何在Java中正确覆盖toString()?

    如何在Java中正确覆盖toString()? 听起来有点愚蠢,但我需要帮助我的toString()方法,这是非常irking. 我尝试在网上查找,因为toString是搞砸了,"没有找到K ...

  3. 遮掩java_关于java中的覆写、重载、隐藏、遮掩、遮蔽

    最近在重新学习java,发现了以前未发现的几个概念,从网上搜索了一些资料,现在整理下.对于我来说,以前只是知道java中的覆写 重载和隐藏,这次却发现还有遮掩和遮蔽这两个概念.下面是整理的一篇文章. ...

  4. “类的使用”编程规范(一)覆写(重写)、重载、隐藏、遮蔽、遮掩

    "类的使用"编程规范(一) 1调用静态方法的注意事项 当子类继承父类的静态方法时,如果直接用实例来调用就会将子类中的静态方法隐藏,结果显示为父类的静态方法. package Tas ...

  5. JAVA和遮掩_JAVA 你不知道的秘密 覆写,重载,隐藏,遮蔽,遮掩

    覆写(override) 一个实例方法可以覆写(override)在其超类中可访问到的具有相同签名的所有实例方法,从而使能了动态分派(dynamic dispatch):换句话说,VM 将基于实例的运 ...

  6. java中的几个术语(覆写override,隐藏hiding,重载overload,遮蔽shadowing,遮盖obscuring)

    今天看完<Java Puzzlers>的第八章,里面各种name reuse,章节最后做了一个非常细致的总结! Overriding(覆写) 一个实例方法可以override它的父类中可以 ...

  7. 关于java方法的重载(Overloading),覆写(Override)以及final 方法的几点说明

    昨天在一个群里面一个群友问道final 方法可不可以重载,我不假思索的说final 方法不能继承不能重载.后来晚上睡不着觉想想总觉得不对头,翻翻书一看自己简直就是胡说八道,才意识到这些基础概念的东西时 ...

  8. Java面向对象:覆写与重载

    override和overload是非常容易混淆的概念. 一.override override是"覆写",是子类实现接口,或者继承父类时,保持方法签名完全相同,实现不同的方法体, ...

  9. java 重载 大于_详解java重载与覆写的区别

    很多同学对于overload和override傻傻分不清楚,建议不要死记硬背概念性的知识,要理解着去记忆. 先给出我的定义: 首先我们来讲讲:重载(Overloading) (1) 方法重载是让类以统 ...

最新文章

  1. pointnet 结果可视化_PointNet论文复现及代码详解
  2. 液晶显示屏怎么显示泰文_液晶显示屏概念股大涨 液晶显示屏概念股一览表
  3. vue教程1:第一个页面HelloVue快速搭建
  4. 云炬Android开发笔记 6启动图功能开发与封装
  5. 12bit的图像如何向8bit转化_干货分享 | 如何鉴别Western Blot图像的真实性?
  6. Oracle shared_pool_reserved_size参数设置说明
  7. python数据库-mongoDB的高级查询操作(55)
  8. 机器学习:残差学习、RNN、GAN、迁移学习、知识蒸馏
  9. 旅游后台管理系列——使用maven tomcat插件启动web工程
  10. 脱不花,如何成为高效学习的人
  11. Android 动画
  12. 王道训练营3月12日
  13. 数据库中的左连接和右连接的区别
  14. 程序设计实践之车辆信息管理系统
  15. UCOSIII实时操作系统
  16. 20181216——自定义全局指令
  17. robots文件的优化
  18. 当前数据中心运维管理工作中存在的问题
  19. Vue3.0系列(一): VUE3.0的新特性
  20. 2021Java面试心得:java性能优化实践pdf

热门文章

  1. 微信小程序实现短信认证功能
  2. swagger使用流程梳理
  3. 如何从外网SSH访问家中的树莓派?
  4. dcos - marathon -lb 问题
  5. 电脑上传网速怎么测试软件,Win7如何测试电脑上传速度?
  6. 调取大华SDK获取IPC音视频流并得到H264帧
  7. 尝试用 vue 实现灭霸打响指英雄消失的效果 demo
  8. CSDN常见问题汇总
  9. Python Eric7+PyQt6环境配置,GUI程序开发
  10. 【阅读】A Comprehensive Survey on Electronic Design Automation and Graph Neural Networks——EDA+GNN综述翻译