【Java零基础入门篇】第 ④ 期 - 继承(二)

news2024/12/27 9:42:12

博主:命运之光
专栏:JAVA入门

 

学习目标
1.掌握继承性的主要作用、实现、使用限制;
2.掌握this和super的含义及其用法;
3.掌握方法覆写的操作;
4.掌握final关键字的使用;
5.掌握类变量、实例变量和局部变量的含义和用法;
6.掌握static和final修饰符的作用;


关键字this和super

继承关系中类成员的使用

Java中使用变量的规则

  • 遵循“就近原则”,局部位置有就使用,没有就去本类的成员位置找,有就使用,没有就去父类的成员位置找,有就使用,没有报错。

关键字this

本质: 对象

用法:从本类开始找

关键字super

本质: 父类内存空间的标识

用法:从父类开始找

在Java中专门提供了一个super关键字用于访问父类的成员。例如访问父类的成员变量、成员方法和构造方法

可以在子类的方法或构造方法中,通过“super.属性”或”super.方法”的方式,显式的调用父类中声明的属性或方法。

在Java类中使用super来调用父类中的指定操作:

  • super可用于访问父类中定义的属性(成员变量)
  • super可用于调用父类中定义的成员方法
  • super可用于在子类构造器中调用父类的构造器

🍓🍓调用父类的构造方法(构造器)

格式: super();super(参数列表);

①当父类没写任何构造方法(或只写了无参构造方法)时,子类会默认调用父类的无参构造方法。

②当父类中没有空参数的构造器时,子类的构造器(每一个)都必须通过super( 参数列表 )语句指定调用父类中相应的某一个带参构造器,且必须放在构造器的首行,否则编译出错;

③父类既有带参构造器又有无参构造器,那么在子类构造器的首行,没有显示的声明”super(形参列表)”,默认调用的是父类中空参的构造器:super();

注意:

  • 当子父类出现同名成员时,可以用super表明调用的是父类中的成员
  • super的追溯不仅限于直接父类(即可以是父类的父类……)
  • 子类继承父类时,并没有继承父类的构造方法,但子类构造方法可以调用父类的构造方法;
  • super和this的用法相像,this代表本类对象的引用,super代表父类的内存空间的标识;

🍓🍓🍓this和super的区别

继承时的覆盖与隐藏

隐藏

1.子类和父类定义了同名属性

内存里实际有2个同名变量,默认使用子类的属性,这种现象叫做子类变量隐藏了父类同名变量。

2.子类和父类定义了同名方法

子类内存里只有子类定义的方法不再有父类定义的方法,这种现象叫做“覆盖”,也叫“方法覆写

覆盖

🍓🍓在继承关系中,子类从父类中继承了可访问的方法,但有时从父类继承下来的方法不能完全满足子类需要,这时就需要在子类方法中修改父类方法,即子类重新定义从父类中继承的成员方法,这个过程称为方法重写或覆盖(覆写)

🍍🍓🍎方法重载方法重写的区别:

方法重载是在同一个类中,方法重写是在子类与父类中。

方法重载要求:方法名相同,参数个数或参数类型不同。

方法重写要求:子类与父类的方法名、返回值类型和参数列表相同。

访问控制符

🍓🍓java一共定义了四种访问权限控制符private、默认权限(default)、protectedpublic。用来保护对类、变量、方法构造方法的访问。

  • public : 对所有类可见。使用对象:类、接口、变量、方法;
  • default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法;
  • protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类);
  • private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)

public > protected > default(缺省) > private

注:方法重写时必须考虑权限,即被子类重写的方法不能拥有比父类方法更加严格的访问权限

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

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

相关文章

【应用场景详解】Web自动化测试适用于哪些场景?看完这篇文章你就知道了

【从入门到实战】WEB自动化测试基础教程,手把手教你封装自己的测试框架! 目录 前言: 一、什么是web自动化测试? 二、Web自动化测试的应用场景 三、Web自动化测试的实现方法 1.安装Selenium 2.编写测试用例 四、Web自动自动…

第十二章 使用DHCP动态管理主机地址

文章目录 第十二章 使用DHCP动态管理主机地址一、动态主机地址管理协议1、DHCP简介2、DHCP常见术语 二、部署DHCP服务程序1、安装DHCP服务程序2、配置文件参考模板3、dhcpd服务程序配置文件中常见参数及作用 三、自动管理IP地址1、机房所用的网络地址以及参数信息2、关闭虚拟网…

原装二手Anritsu S331E安立S331L 手持式电缆和天线分析仪

Anritsu S331E Site Master 手持式电缆和天线分析仪涵盖 2 MHz 至 4 GHz 频谱,是无线基站电缆和天线系统安装、配置、维护和故障排除的行业标准。Site Master 准确、多功能、价格合理、坚固耐用,是真正的手持设备,重量不到 5 磅(包…

跨越式升级,敏感数据动态脱敏系统全新而来!

“ 2020年 某医院疫情名单遭工作人员外泄至微信群,涉及6000余人个人身份信息,三人被拘 2021年 某银行未经客户本人授权查询并向第三方提供其个人银行帐户交易信息,被罚450万元 2022年 某银行未落实个人银行账户实名制管理规定&#xff…

民宿企业数字化最佳实践 :我终于跟线下表格和解了

“不由感叹,技术就是生产力啊!” 这是偶来民宿店长在使用了腾讯轻联后不由得发出的感慨。 偶来民宿是一家管理超过100套城市民宿和公寓房源的民宿运营公司,以经营特色化、年轻化、个性化民宿、公寓为主营业务。IF HOUSE为该公司旗下高端民宿…

github copilot如何帮助写代码

Github Copilot是一个基于人工智能的代码助手,可以帮助程序员在编写代码时提供自动补全和建议功能。使用Github Copilot需要以下步骤: 1.注册Github账号并安装Github Copilot插件 首先你需要注册一个Github账号,然后在你使用的代码编辑器中安…

基于netty框架不使用SSL证书,实现websocket数据加密传输

文章目录 简介实现方式主要代码调用方法 1、简介 2、实现方式 3、服务端主要代码 4、客户端主要代码 5、调用方式 简介 为什么不使用SSL证书? 1、服务器运行在专网环境,不能访问互联网。证书有有效期,CA机构规定,证书有效期…

vue3【使用axios并封装axios请求】

第一步:安装axios npm install axios 第二步:编写请求文件 新建request.js 简单的axios封装,里面相关提示信息,自己可以引入element-plus去添加 /**axios封装* 请求拦截、相应拦截、错误统一处理*/ import axios from axios; i…

Linux入门篇-安装CentOS

一、先组织硬件 先把“买”一台空白的电脑,再进行操作系统的安装。 windows中,处理器: 本机 实际运行的时候能当多少个CPU来使呢?16个 处理器的数量是CPU的数量;(本机上一个插槽,就只有一个CP…

同城跑腿能赚多少钱?“爱折腾”的创业者是否值得入局一试?

跑腿服务兴起的最大特点是节省时间和成本。现在城市发展越来越快,真的应该是“时间就是金钱”的道理。帮助人们排队购物、送外卖、送文件、买花、叫醒服务……“跑腿”在生活中无处不在。 同城跑腿系统的前景有多大? 一方面,外卖和网上购物…

深入学习MYSQL-使用触发器

触发器 每个表最多支持6个触发器,(insert,update,delete)之前和之后。 删除触发器 drop trigger trigger_name;insert 触发器  在INSERT触发器代码内,可引用一个名为NEW的虚拟表,访问被插入…

第一章--Java语言概述

一 Java知识脉络图 1.1 Java基础全程脉络图 1.2 本章专题与脉络 二 计算机的硬件与软件 2.1 计算机组成:硬件软件 2.2 CPU、内存与硬盘 CPU(Central Processing Unit,中央处理器) 人靠大脑思考,电脑靠CPU来运算、控…

【beego】bee工具安装使用

bee 工具是一个为了协助快速开发 beego 项目而创建的项目,通过 bee 您可以很容易的进行 beego 项目的创建、热编译、开发、测试、和部署。 1、安装 go get github.com/beego/bee2、配置bee.exe 运行完以上指令后,打开$GOPATH/bin ,我的路径…

刷完这个笔记,17K不能再少了....

大家好,最近有不少小伙伴在后台留言,得准备面试了,又不知道从何下手!为了帮大家节约时间,特意准备了一份面试相关的资料,内容非常的全面,真的可以好好补一补,希望大家在都能拿到理想…

2直接连接的网络与VLAN划分-2.1【实验】【计算机网络】

2直接连接的网络与VLAN划分【实验】【计算机网络】 前言推荐2直接连接的网络与VLAN划分2.1共享式以太网和交换式以太网实验目的实验内容及实验环境实验原理共享式以太网交换式以太网 实验过程搭建实验环境初始化序训练操作共享式以太网-操作交换式以太网查看共享式以太网冲突查…

java中ArrayList顺序表的常见操作

ArrayList常见操作 1.插入操作 尾插 e boolean add(E e) 将 e 插入到 index 位置&#xff08;指定位置插入&#xff09; void add(int index, E element) 尾插 c 中的元素(直接插入一个集合) boolean addAll(Collection<? extends E> c) 将c插入到index位置&#x…

java基础--(一)创建对象在内存中的理解

1、代码 package demo; public class Car {String color;int num;public Car() {}public void run(){System.out.println("color " color);System.out.println("num " num);}public Car(String color, int num) {this.color color;this.num num;} …

2022年美国大学生数学建模竞赛D题数据瘫痪? 使用我们的分析!解题全过程文档及程序

2022年美国大学生数学建模竞赛 D题数据瘫痪? 使用我们的分析! 原题再现&#xff1a; 背景   很多公司将数据视为战略资产&#xff0c;但却很难从中获益。妥善管理这一资源(数据)可以带来竞争优势。因此&#xff0c;公司需要建立一一个集成的数据和分析(D&A) 系统&…

网络中的数据传输模式有哪些-镭速

数据传输模式定义了两个通信设备之间信息流的方向&#xff0c;也称为数据通信或定向模式&#xff0c;同事也规定了信息在计算机网络中从一处流向另一处的方向。 在开放系统互连&#xff08;OSI&#xff09;层模型中&#xff0c;物理层专用于网络中的数据传输。它主要决定数据到…

微信小程序原生开发功能合集十四:登录健权及注册功能实现

本章实现微信自动登录及注册修改功能,包括匿名账号生成、权限自动检测、注册界面及注册流程的实现。   另外还提供小程序开发基础知识讲解课程,包括小程序开发基础知识、组件封装、常用接口组件使用及常用功能实现等内容,具体如下:    1. CSDN课程: https://edu.csdn…