中继承父类实现父类方法的快捷键_关于封装、继承

0994a391963a23b4c341ad55196a5172.png

在初期,很多人对于java中一些定义的认识比较模糊,今天我就来详细讲一讲我所认识的封装和继承。

1、封装

1.1)概念:将类的某些信息隐藏在内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。

1.2)好处:只能通过规定的方法访问数据;隐藏类的实例细节,方便修改和实现。

1.3)封装的实现步骤

7a6ca1bd8c08f466bbf73373e86e460c.png

注意:对封装的属性不一定必须通过get/set方法,其他方法也可以对封装的属性进行操作。当然最好使用get/set方法,这样比较标准。

1.4)访问修饰符

1affca8eff1bff84c335132688ad7805.png

访问修饰符可以限制类中成员的被访问范围,可以有效的保护隐私数据。

1.5)java中的内部类

  • 内部类(Inner Class)就是定义在另外一个类里面的内。与之对应,包含内部类的类被称为外部类。
  • 内部类不常用,但却有其特殊的作用:
  • a、内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类。
  • b、内部类的方法可以直接访问外部类的所有数据,包括私有的数据。
  • c、内部类所实现的功能使用外部类同样可以实现,只是有时使用内部类更方便。
  • 内部类分为:成员内部类、静态内部类、方法内部类、匿名内部类

2、继承

2.1)概念:继承是类与类的一种关系,是一种“is a”的关系。比如“狗”继承“动物”,这里动物类是狗类的父类或者基类,狗类是动物类的子类或者派生类。如下图所示:

432bf13fafdac4238887843498029319.png

注:java中的集成是单继承,一个类只有一个父亲,但一个父亲可以有多个子类。

2.2)好处:子类拥有父类的所有属性和方法(除了private修饰的属性不行)从而实现了代码的复用。

2.3)语法规则:只要在子类后面加上extends关键字再加上想要继承的父类就可以了

5a4a3b67597e3dddf69a737e3ae1d856.png

2.4)方法的重写

子类如果对继承的父类中一些方法不满意,可以自己重写编写该方法,这种方式就叫做方法的重写,当调用方法时会优先调用子类的方法。

需要注意:方法名相同、参数列表相同,方法体不同

2.5)继承的初始化顺序

  • 初始化父类再初始化子类
  • 先执行初始化对象中属性,再执行构造方法中的初始化
  • 基于上面两点,我们就知道实例化一个子类,java程序的执行顺序是:
  • 父类对象属性初始化---->父类对象构造方法---->子类对象属性初始化--->子类对象构造方法

1e46f818f184fca0f3a2fddc52566a07.png

2.6)final关键字

使用final关键字做标识有“最终”的含义。final修饰类,则该类不能被继承;final修饰方法,则该方法不能被重写;final修饰属性,则该类的该属性不会进行隐式的初始化,所以该final 属性的初始化属性必须有值,或在构造方法中赋值(但只能选其一,且必须选其一,因为没有默认值),且初始化之后就不能改了,只能赋值一次。

2.7)super关键字

在对象的内部使用,可以代表父类对象。

访问父类的属性super.*;访问父类方法super.*()

super的应用:首先我们知道子类的构造的过程当中必须调用父类的构造方法。其实这个过程已经隐式地使用了我们的super关键字。这是因为如果子类的构造方法中没有显示调用父类的构造方法,则系统默认调用父类无参的构造方法。那么如果自己用super关键字在子类里调用父类的构造方法,则必须在子类的构造方法中的第一行。要注意的是:如果子类构造方法中既没有显示调用父类的构造方法,而父类没有无参的构造方法,则编译出错。(补充说明,虽然没有显示声明父类的无参的构造方法,系统会自动默认生成一个无参构造方法,但是,如果你声明了一个有参的构造方法,而没有声明无参的构造方法,这时系统不会动默认生成一个无参构造方法,此时称为父类有没有无参的构造方法。)

2.8)Object类

Object类是所有类的父类,如果一个类没有使用extends关键字明确标识继承另一个类,那么这个类默认继承Object类。Object里面主要有两个类:toString()、equals()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/512963.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

KubeVela 上手(1)|让云端应用交付更加丝滑

简介: KubeVela 是阿里云和微软共同发起的 OAM(Open Application Model)标准的技术实现,旨在打造统一、标准、跨环境的云端应用交付,省时省力,轻松简单 作者|KubeVela 社区 本文适合所有软件工…

华为云云原生首次在太空验证,提升“天算星座“卫星计算精度

12月10日,搭载“天算星座”计算平台的试验卫星在轨稳定运行,华为云“云边一体”方案首次在太空验证。 图:天算星座计划 “天算星座”计划,由北京邮电大学深圳研究生院与天仪研究院共同发起,以服务国家重大战略需求和…

火柴人_火柴人战争遗产修改无限金币钻石

火柴人战争遗产修改无限金币钻石V1.11.160/中文/80M商店内使用钻石购买商品不减反增【一、游戏简介】《火柴人战争遗产修改版 Stick War: Legacy》一直最受玩家欢迎、评分最高的一款网游现在推出移动版.玩 Stick War,体验这款最受欢迎、最有趣、最具挑战性且容易入迷…

一种通用整形数组压缩方法

简介: 我们在开发中后台应用或者中间件的时候,会存储一些数据在内存中以加快访问速度。随着数据量的增加,除了可以放置于堆外,还可以通过实时压缩来缓解。今天就给大家介绍一种压缩整形数组的方式。 作者 | 玄胤 来源 | 阿里技术公…

gitlab git clone 卡住_gitlab从入门到绝望

啥年月了还用svn,日了狗一样难受。开搞!docker是最好的容器,直接docker装gitlab。学新玩意不去官网不是人:https://docs.gitlab.com/omnibus/docker/#expose-gitlab-on-different-portsdocker pull gitlab/gitlab-cesudo docker r…

FBEC2021暨第六届金陀螺奖颁奖典礼盛大开幕

2021年12月10日,由广东省游戏产业协会、广东省虚拟现实产业技术创新联盟、深圳市科学技术协会、深圳市互联网文化市场协会指导,陀螺科技主办,深圳市科技开发交流中心、恒悦创客魔方协办,行业头部媒体游戏陀螺、VR陀螺、陀螺电竞、…

RDS PostgreSQL一键大版本升级技术解密

简介: 内容简要: 一、PostgreSQL行业位置 二、PostgreSQL版本升级背景 三、PostgreSQL版本升级解密 四、PostgreSQL版本升级成果 一、PostgreSQL行业位置 (一)行业位置 在讨论PostgreSQL(下面简称为PG)在…

环境变量_Jenkins流水线环境变量权威指南

你是否遇到过因环境变量问题导致调试流水线很长时间?这篇文章一定能解决你的问题。本文章翻译自博客。欢迎来到“Jenkins CookBook”系列的第一篇博客文章。今天,我们专注于有效地使用Jenkins Pipeline环境变量。您将学习如何定义env变量,如何…

浅谈RSocket与响应式编程

简介: RSocket是高效一个二进制的网络通讯协议,能够满足很多场景下使用。另外,RSocket也是一个激进的响应式捍卫者,激进到连API都跟响应式无缝集成。本文我们将和大家分享RSocket与响应式编程。 作者 | 素渡 来源 | 阿里技术公众号…

Go语言重新开始,Go Modules 的前世今生与基本使用

随着Go语言发展与场景变化, GOPATH 引起的编译依赖、内部自签发证书、安全审计等问题相继出现,随着官方推出的Go Modules逐渐完善,用户有了新的选择。本文将会带领大家从0开始,认识并使用Go Modules。 2020 年腾讯内部的一份开发者…

MaxCompute中如何通过logview诊断慢作业

简介: MaxCompute致力于批量结构化数据的存储和计算,提供海量数据仓库的解决方案及分析建模服务,在MaxCompute执行sql任务的时候有时候作业会很慢,本文通过查看logview排查具体任务慢的原因 在这里把任务跑的慢的问题划分为以下几…

excel超级工具箱_这6个Excel高效办公插件,你都用过吗?

1.易用宝。ExcelHome出品,永久免费,让繁琐或难以实现的操作变得简单可行,甚至能够一键完成,所有这些功能都将极大地提升 Excel 的便捷以及可用性!地址:http://yyb.excelhome.net2.方方格子工具箱。大部分功…

Yurt-Tunnel 详解|如何解决 K8s 在云边协同下的运维监控挑战

简介: 伴随着 5G、IoT 等技术的快速发展,边缘计算被越来越广泛地应用于电信、媒体、运输、物流、农业、零售等行业和场景中,成为解决这些领域数据传输效率的关键方式。与此同时,边缘计算形态、规模、复杂度的日益增长,…

RTC风向标:11月最值得关注的26个热点

近年来,实时音视频快速发展,WebRTC作为实时音视频的标准也快速发展,从直播到通讯,其应用场景也在不断丰富。如果您关注实时音视频方向的技术产品应用与创新,本系列文章就将会为您分享音视频方向的技术产品动态&#xf…

克隆需要验证_[实验技巧]CRISPR实验中如何验证编辑?

在CRISPR/Cas9基因组编辑实验中,如果你已经构建好了gRNA表达载体,并利用Cas9将它引入了目标细胞,那么恭喜你!成功就在眼前,指日可待。下一步,你还要验证一下,看看细胞的编辑是否如你所愿。在此&…

基于边缘云的机器流量管理技术实战

简介: CDN是通过在全球范围内分布式地部署边缘服务器将各类互联网内容缓存到靠近用户的边缘服务器上,从而降低用户访问时延并大幅减少穿越互联网核心网的流量。互联网业务使用CDN已经成为一种必然的选择。 企业边缘应用面临的挑战 CDN是通过在全球范围…

python中的repr是什么意思_python中str和repr有什么区别

python中str和repr有什么区别?下面给大家详细介绍: 1、内建函数str()和repr() 或反引号操作符()可以方便地以字符串的方式获取对象的内容、类型、数值属性等信息。 2、str()函数得到的字符串可读性好(故被print调用&am…

Go语言入门分享

简介: Go语言出自Ken Thompson、Rob Pike和Robert Griesemer之手,起源于2007年,并在2009年正式对外发布。Go的主要目标是“兼具Python等动态语言的开发速度和C/C等编译型语言的性能与安全性”,旨在不损失应用程序性能的情况下降低…

瑞欧威尔联合创始人兼CEO 李波博士:“工业元宇宙”是为了更好赋能实体经济

2021年12月10日,由广东省游戏产业协会、广东省虚拟现实产业技术创新联盟、深圳市科学技术协会、深圳市互联网文化市场协会指导,陀螺科技主办,深圳市科技开发交流中心、恒悦创客魔方协办,行业头部媒体游戏陀螺、VR陀螺、陀螺电竞、…

加载模型图_Tensorflow ckpt模型加载时的命名映射

tensorflow代码在加载ckpt模型时一般会使用如下代码:saver tf.train.Saver() with tf.Session() as sess:saver.restore(sess, "model.ckpt")那么问题来了,如果想把开源的ckpt模型加载到自己代码里不同的变量命名空间中, 应该如何…