JAVA子类与继承
目录
JAVA子类与继承
一、子类与父类:
二、子类与对象
三、成员变量的隐藏和方法重写
四、super关键字(P122)
五、final关键字
六、对象的上转型对象(P126)
七、继承与多态(P128)
八、abstract类和abstract方法
JAVA子类与继承
四种权限修饰符:
public > protected > (default) > private
类方法:实例方法与静态方法
对象调用实例方法,类名调用类方法
一、子类与父类:
Java不支持多重继承,一个子类只能继承一个父类
格式:class A extends B { …… }
继承性:子类继承父类中的成员变量与方法
子类父类在同一个包中,可以继承子类中除了private的成员变量
不在同一个包中,不继承除了private和(default)友好的成员变量,继承public和protected
二、子类与对象
子类可以继承父类的一些成员变量和方法,但是不能继承private的成员变量,子类继承父类的一部分方法,这部分方法可以操作未继承到的private变量
关于instanceof运算符:
左面是对象,右面是类,结果为true或者false
// 定义showEat方法,使用父类作为方法的形参,实现多态,传入的是哪个具体对象就调用哪个对象的eat()方法/********* begin *********/public static void showEat(Person a){if(a instanceof Chinese){Chinese c = (Chinese) a;c.shadowBoxing();}if(a instanceof English){English c = (English) a;c.horseRiding();}}/********* end *********/
三、成员变量的隐藏和方法重写
方法重载:一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同。需满足下面两个条件之一:
- 参数的个数相同
- 参数的个数不同,但参数列表中对应的某个参数的类型相同
成员变量的隐藏:
子类可声明与父类相同的成员变量的名字,在这种情况下,可以将父类的成员变量隐藏
特点:
- 子类继承的方法所调用的成员变量一定是父类所隐藏的成员变量
- 子类自己定义的方法可以操作子类继承的以及新定义的成员变量
方法重写:通过方法重写可以隐藏已继承的方构造函数和静态方法不能重写!!!
子类定义的一个方法的类型与父类的一致,要满足:方法的名字,参数的个数,参数的类型与父类一致(四同!!!)
四、super关键字(P122)
- 使用super调用父类中被隐藏的成员变量以及方法,比如super.x,super.f()
- 使用super调用父类中的构造方法
子类不继承父类的构造方法,使用super调用父类的构造方法,且super必须是子类构造方法中的头一条语句。即子类继承父类,生成对象时必须先调用父类的构造方法,父类得有一个不带参数得构造方法,方便子类重写。
super( ); 默认为调用父类的构造方法(P124)
五、final关键字
可以修饰类,成员变量,方法中的局部变量
Final类不允许继承,final成员变量不允许重写,final方法中的局部变量或者全局变量为常量!
instanceof 左边对象,右边类
六、对象的上转型对象(P126)
用子类创建一个对象,且把这个对象放在父类中
Animal a;
a=new Tiger();
或者
Animal a;
Tiger b=new Tiger();
a=b;
- 上转型对象不可以调用子类新增的方法与成员变量
- 上转型对象不能操作子类新增的成员变量,不能调用子类新增的方法。上转型对象可以访问子类继承或隐藏的成员变量,可以调用子类继承的方法或子类重写的实例方法
- 上转型对象可以调用隐藏的变量,继承的变量与方法以及重写的实例方法(若子类重写了父类的某个实例方法,则上转型对象调用的实例方法一定是重写之后的)
- 可以将对象的上转型对象强制转换为子类对象:Tiger c=(Tiger) a;把上转型对象a强制转换为子类对象c
- 子类重写了父类的静态方法,则子类对象只能调用父类的静态方法
- 对象可调用:继承的变量与方法,新增的变量与方法,重写的方法
七、继承与多态(P128)
父类的方法被子类重写时,可以产生各自的功能行为
继承、重写、父类引用指向子类对象
八、abstract类和abstract方法
Abstract类:
- 只允许声明,不允许实现,没有方法体,该有的参数要有
- 不能用static和final修饰,必须是实例方法
- 非abstract类:不可有abstract方法;
abstract类:可以有abstract方法,可继承与重写,也可以有非abstract方法,若是子类,必须重写父类的抽象方法,且只能大于父类权限!
构造方法必须重写!!!
4、 可以使用abstract类声明对象,但是不能用new创建该对象
abstract class Person {
public Person() {};#必须重新声明一下
public Person(String name,int age){this.name=name;this.age=age;
}
}
abstract class Player extends Person {public Player() {super();}#同理需要声明!public Player(String name,int age){super(name,age);
}
}
相关文章:
JAVA子类与继承
目录 JAVA子类与继承 一、子类与父类: 二、子类与对象 三、成员变量的隐藏和方法重写 四、super关键字(P122) 五、final关键字 六、对象的上转型对象(P126) 七、继承与多态(P128) 八、abstract类和…...
62 openEuler 22.03-LTS 搭建MySQL数据库服务器-管理数据库
文章目录 62 openEuler 22.03-LTS 搭建MySQL数据库服务器-管理数据库62.1 创建数据库示例 62.2 查看数据库示例 62.3 选择数据库示例 62.4 删除数据库示例 62.5 备份数据库示例 62.6 恢复数据库示例 62 openEuler 22.03-LTS 搭建MySQL数据库服务器-管理数据库 62.1 创建数据库…...
【分布式搜索引擎ES01】
分布式搜索引擎ES 分布式搜索引擎ES1.elasticsearch概念1.1.ES起源1.2.倒排索引1.2.1.正向索引1.2.2.倒排索引 1.3.es的一些概念1.3.1.文档和字段1.3.2.索引和映射1.3.3.mysql与elasticsearch 1.4.1安装es、kibana、IK分词器1.4.2扩展词词典与停用词词典 2.索引库操作2.1.mappi…...
1.3 鞅、停时和域流-鞅(布朗运动与随机计算【习题解答】)
Let X = ( x n , F n ) , n = 1 , ⋯ , N X=\left(x_n, \mathcal{F}_n\right), n=1, \cdots, N X...
十、ElasticSearch 实战 - 源码运行
一、概述 想深入理解 Elasticsearch,了解其报错机制,并有针对性的调整参数,阅读其源码是很有必要的。此外,了解优秀开源项目的代码架构,能够提高个人的代码架构能力 阅读 Elasticsearch 源码的第一步是搭建调试环境&…...
GPT-3 论文阅读笔记
GPT-3模型出自论文《Language Models are Few-Shot Learners》是OpenAI在2020年5月发布的。 论文摘要翻译:最近的工作表明,通过对大量文本进行预训练,然后对特定任务进行微调(fine-tuning),在许多NLP任务和基准测试上…...
方案解析丨数字人主播如何成为电商直播新标配
浙江省政府办公厅近日印发《关于进一步扩大消费促进高质量发展若干举措》支持电子商务直播发展。抢抓电子商务直播快速发展机遇,发展数字人虚拟主播、元宇宙新消费场景等新业态新模式。 随着电商直播快速发展,企业怎么高效地实现引流获客,成为…...
Python最全迭代器有哪些?
python中迭代器的使用是最广泛的,凡是使用for语句,其本质都是迭代器的应用。 从代码角度看,迭代器是实现了迭代器协议的对象或类。迭代器协议方法主要是两个: __iter__()__next__() __iter__()方法返回对象本身,他是…...
ESP32 网络计时器,包含自动保存
简介 本代码是基于ESP32开发板实现的一个计时器功能,具备倒计时、计时器时长选择、显示当前时间、有源蜂鸣器报警等功能。代码中使用了WiFi网络连接、NTP时间同步、EEPROM存储等功能。通过按钮控制计时器的开始、停止和计时器时长的选择。 运行原理概述 在ESP32开…...
【ChatGPT】阿里版 ChatGPT 突然官宣意味着什么?
Yan-英杰的主页 悟已往之不谏 知来者之可追 C程序员,2024届电子信息研究生 目录 阿里版 ChatGPT 突然官宣 ChatGPT 技术在 AI 领域的重要性 自然语言生成 上下文连续性 多语言支持 ChatGPT 未来可能的应用场景 社交领域 商业领域 编辑 医疗领域…...
IPEmotion控制模块-PID循环应用
IPEmotion专业版、开发版支持控制模块,并且该模块支持函数发生器、PID控制器、路由器、序列控制和序列控制块以及参考曲线生成器。本文主要针对PID(P:Proportional control 比例控制;I:Integral control 积分控制&…...
【元分析研究方法】学习笔记2.检索文献(含100种学术文献搜索清单链接)
检索文献 该步骤的作用该步骤中需要注意的问题该步骤中部分知识点我的收获 参考来源:库珀 (Cooper, H. M. )., 李超平, & 张昱城. (2020). 元分析研究方法: A step-by step approach. 中国人民大学出版社. 该步骤的作用 1.识别相关文献的来源; 2.识别…...
题目:16版.自由落体
1、实验要求 本实验要求:模拟物体从10000米高空掉落后的反弹行为。 1-1. 创建工程并配置环境: 1-1.1. 限制1. 工程取名:SE_JAVA_EXP_E009。 1-1.2. 限制2. 创建包,取名:cn.campsg.java.experiment。 1-1.3. 限制3. 创建…...
视频可视化搭建项目,通过简单拖拽方式快速生产一个短视频
一、开源项目简介 《视搭》是一个视频可视化搭建项目。您可以通过简单的拖拽方式快速生产一个短视频,使用方式就像易企秀或百度 H5 等 h5 搭建工具一样的简单。目前行业内罕有关于视频可视化搭建的开源项目,《视搭》是一个相对比较完整的开源项目&#…...
network-1 4 layer internet model
4layer model applicationtransport tcp: transmission control protocol enable correct in-order delivery of data, running on top of the network layer service.udp: user datagram protocolnetwork packet:data、from、tonetwork->linkiplink source en…...
计算机网络笔记(横向)
该笔记也是我考研期间做的整理。一般网上的笔记是按照章节纪录的,我是按照知识点分类纪录的,大纲如下: 文章目录 1. 各报文1.1 各报文头部详解1.2 相关口诀 2. 各协议2.1 各应用层协议使用的传输层协议与端口2.2 各协议的过程2.2.1 数据链路层…...
0.redis-实践
1.redis内存设置多少,默认是0,不限制 2.如何配置,修改内存大小 1) 查看最大占用内存 # maxmeory <bytes> 或者 config get maxmemory 2) 默认内存多少可以用: 64位系统下不限制,32位下最多3G 3) 如何配置: 默认总内存的3/4 4) 如何修改…...
Redux的基本使用,从入门到入土
目录 一、初步使用Redux 1.安装Redux 2.配置状态机 二、Redux的核心概念 1.工作流程 2.工作流程 三、优化Redux 1.对action进行优化 2.type常量 3.reducer优化 四、react-redux使用 1.安装react-redux 2.全局注入store仓库 3.组件关联仓库 五、状态机的Hook 1.u…...
GDOUCTF2023-部分re复现
目录 [GDOUCTF 2023]Check_Your_Luck [GDOUCTF 2023]Tea [GDOUCTF 2023]doublegame [GDOUCTF 2023]Check_Your_Luck 打开题目是一串代码,明显的z3约束器求解 直接上脚本 import z3 from z3 import Reals z3.Solver() vReal(v) xReal(x) yReal(y) wReal(w) zRea…...
Java学习17(IO模型详解)
1、何为IO? I/O(Input/Outpu) 即输入/输出 。 从计算机结构的角度来解读一下 I/O。 根据冯.诺依曼结构,计算机结构分为 5 大部分:运算器、控制器、存储器、输入设备、输出设备。 输入设备(比如键盘&am…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...
HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...
华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...
绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化
iOS 应用的发布流程一直是开发链路中最“苹果味”的环节:强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说,这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发(例如 Flutter、React Na…...
热门Chrome扩展程序存在明文传输风险,用户隐私安全受威胁
赛门铁克威胁猎手团队最新报告披露,数款拥有数百万活跃用户的Chrome扩展程序正在通过未加密的HTTP连接静默泄露用户敏感数据,严重威胁用户隐私安全。 知名扩展程序存在明文传输风险 尽管宣称提供安全浏览、数据分析或便捷界面等功能,但SEMR…...
raid存储技术
1. 存储技术概念 数据存储架构是对数据存储方式、存储设备及相关组件的组织和规划,涵盖存储系统的布局、数据存储策略等,它明确数据如何存储、管理与访问,为数据的安全、高效使用提供支撑。 由计算机中一组存储设备、控制部件和管理信息调度的…...
