[JAVASE] 类和对象(三) - 继承

news2024/11/25 2:28:51

目录

一. 继承的定义

        1.1 基本概念

        1.2 基本实现 

二. 父类 和 子类中的成员访问

        2.0 super 与 this 关键字

        2.1 访问成员变量 

        2.2 访问成员方法

三. 父类 和 子类中的构造方法

        3.1 访问父类中的构造方法

        3.2 注意事项

四. 权限修饰限定符 

public:

protected:

 default:

 private:

五. 继承方式 

六. final关键字 

        6.1 final 修饰 变量

        6.2 final 修饰 成员方法 

         6.3 final 修饰 类

七. 继承与组合 

八. 总结


一. 继承的定义

        1.1 基本概念

继承就是对多个类的共性进行抽取, 以实现代码的复用.

父类和子类是 is a 的关系. 

        1.2 基本实现 

使用 extends 关键字 来实现继承.

Animal类: 父类/基类/超类

Cat/Dog类: 子类/派生类 


二. 父类 和 子类中的成员访问

        2.0 super 与 this 关键字

super:

0. super关键字并不代表父类的引用, 它起到了一种标识作用, 表示就是要访问父类的成员.

1. super.成员变量

2. super.成员方法

3. super() // 访问父类的构造方法 

this:

0. this关键字代表的是当前对象的引用.

1. this.成员变量

2. this.成员方法

3. this() // 访问子类的构造方法 

        2.1 访问成员变量 

当父类和子类中存在同名的成员变量时, 优先访问子类中的成员变量.

使用  super.成员变量  来指定访问父类中的成员变量.

        2.2 访问成员方法

当父类和子类中存在同名的成员方法是, 优先访问子类中的成员方法.

使用  super.成员方法   来指定访问父类中的成员方法. 


三. 父类 和 子类中的构造方法

        3.1 访问父类中的构造方法

切记: 先有父, 在有子.

在对子类中的成员变量初始化之前, 需要先对父类中的成员变量进行初始化.

此时, 就用到了 super().

        3.2 注意事项

super() 与 this() 都必须放在构造方法中的第一行, 否则,编译失败.

所以,super() 与 this() 不能够同时出现.


四. 权限修饰限定符 

权限关系大小: public > protected > default > private

public:

1. 所有包中的所有类.

protected:

1. 同一个包中的所有类.

2. 不同包中的子类. 

 default:

1. 同一个包中的所有类(包访问权限).

 private:

1. 同一个中的同一类(只能在当前类中被访问).


五. 继承方式 

JAVA当中 不支持多继承(一个类继承多个类). (后面通过接口来解决java中不能多继承的问题)


六. final关键字 

        6.1 final 修饰 变量

final修饰变量 表示 常量.

        6.2 final 修饰 成员方法 

final 修饰成员方法, 表示这个方法具有了不可变性, 不能够被重写.(密封方法) (后期多态时介绍)

         6.3 final 修饰 类

final 修饰的 类,不能够再被其他类继承(密封类).


七. 继承与组合 

组合就是将一个类的实例化对象 作为 另一个类的成员变量.

继承是 is a 的关系.

组合是 has a 的关系.

 


八. 总结

1. 继承的基本定义与实现(使用extends关键字来实现继承).

2. super 关键字(不是代表父类的引用, 是起到了一种标识的作用, 表示就是访问父类中的成员).

3. this 关键字, 代表的是当前对象的引用.

4. 权限控制.

5. final 关键字的使用

6. 组合 是 has a 的关系(相当于是一个东西有一个个的零件).

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

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

相关文章

Spring系列-03-BeanFactory和Application接口和相关实现

BeanFactory BeanFactory和它的子接口们 BeanFactory 接口的所有子接口, 如下图 BeanFactory(根容器)-掌握 BeanFactory是根容器 The root interface for accessing a Spring bean container. This is the basic client view of a bean container; further interfaces such …

GD32F103RCT6/GD32F303RCT6-UCOSIII底层移植(4)消息队列实验

本文章基于兆易创新GD32 MCU所提供的2.2.4版本库函数开发 后续项目主要在下面该专栏中发布: 手把手教你嵌入式国产化_不及你的温柔的博客-CSDN博客 感兴趣的点个关注收藏一下吧! 电机驱动开发可以跳转: 手把手教你嵌入式国产化-实战项目-无刷电机驱动&am…

【LeetCode算法】第58题:最后一个单词的长度

目录 一、题目描述 二、初次解答 三、官方解法 四、总结 一、题目描述 二、初次解答 1. 思路:双指针法。low指向单词头,high指向单词后的空格,则high-low就是每个单词的长度。算法步骤:①low从头往后查找第一个非空格的字符&…

分割文本文件

分割一个.txt文件,可以选择在命令行中使用split指令,或者编写一段脚本进行操作。以下是一个简单的Python脚本来分割文本文件: def split_file(file, lines):# Open source filewith open(file, r) as source:count 0atEOF Falsewhile not …

如果有多个文件夹,怎么快速获得文件夹的名字呢

上一篇写到怎么批量建立文件夹,那么怎么获取批量文件夹的名字呢? 一、啊这,这真是一个好问题二、这个得用Python(文本末尾有打包程序,点击链接运行就可以了)(1)首先建立一个py文件&a…

Python 将文件夹中的图片信息导入到 Excel 的表格

引言 在数据处理和管理的日常任务中,经常需要将文件夹中的图片文件信息(如文件名、路径、创建日期、大小、分辨率等)整理成一个 Excel 表格。这篇博客将介绍如何使用 Python 中的 wxPython 模块创建一个 GUI 应用,用户可以通过这…

jmeter保存测试计划报错——Couldn‘t save test plan to file:

jmeter保存测试计划报错——Couldnt save test plan to file:。。。。。拒绝访问 一、问题描述二、分析三、结果 一、问题描述 Couldn’t save test plan to file:D:\Program Files\apache-jmeter-5.6.2\bin\线程组.jmx D:\Program Files\apache-jmeter-5.6.2\bin\线程组.jmx(…

2024电工杯A题完整代码论文分析

2024年电工杯数学建模竞赛A题论文和代码已完成,代码为B题全部问题的代码,论文包括摘要、问题重述、问题分析、模型假设、符号说明、模型的建立和求解(问题1模型的建立和求解、问题2模型的建立和求解、问题3模型的建立和求解)、模型…

【Mac】电脑任何来源无法打开的问题解决办法

前言 有小伙伴在安装本站软件过程中,遇到过运行脚本1提示 sudo: /etc/sudoers is world writable的问题,其实就是电脑任何来源无法打开。今天就来说一下解决办法。 问题现象 电脑运行「脚本1」时提示: // 错误内容sudo: /etc/sudoers is w…

Navicat 连接 OceanBase 快速入门 | 社区版

Navicat Premium(16.1.9或更高版本)正式支持 OceanBase全线数据库产品。OceanBase为现代数据架构打造的开源分布式数据库。兼容 MySQL 的单机分布式一体化国产开源数据库,具有原生分布式架构,支持金融级高可用、透明水平扩展、分布…

KVM虚拟化基础

一、虚拟化基础 1.传统物理机部署方案 IDC机房优点: IDC机房是分布式的,是全国连锁的。我们将物理服务器部署到IDC机房,由IDC机房帮我们上架服务,管理其内部的网络以及路由转发、服务器资源的分发;而且IDC机房带宽接…

加入MongoDB AI创新者计划,携手MongoDB共同开创AI新纪元

加入MongoDB AI创新者计划! MongoDB对AI创新和初创企业的支持既全面又广泛!无论您是领先的AI初创企业还是刚刚起步,MongoDB Atlas都是支持您愿景的最佳平台。 AI 初创者计划The AI Startup Track AI初创者计划为早期初创企业提供专属福利&…

顺序表及其应用

掌握顺序表的初始化,初始化、查找、插入、删除、遍历、查看实际长度等操作 内容 从键盘输入n个整数,创建顺序表。【创建长度为n的顺序表】从键盘输入1个整数x,在顺序表中查找x所在的位置。若找到,输出该元素所在的位置(即数组下标…

YOLOV10实时端到端目标检测

代码地址:GitHub - THU-MIG/yolov10: YOLOv10: Real-Time End-to-End Object Detection 论文地址:https://arxiv.org/pdf/2405.14458 本文介绍了YOLO系列目标检测器在实时和高效方面的优势,但是仍然存在一些缺陷,包括依赖非极大值…

【Linux】icmp_seq=1 Destination Host Unreachable

执行ping 命令提示:From 192.168.XX.XX icmp_seq1 Destination Host Unreachable 这个错误消息通常表示以下几种情况之一: 网络连接问题:目标主机可能没有连接到网络,或者网络中的某个路由器无法将数据包转发到目标主机。 目标主…

08.1.jenkins安装方法

安装 配置官方下载源 #配置jenkins源 sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key下载jak、jenkins服务 #下载jdk11环境,并且配置yu…

软考之信息系统管理知识点(3)

流水线:是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。 编译得过程 关系数据库是表的集合 …

基于yolov2深度学习网络的昆虫检测算法matlab仿真,并输出昆虫数量和大小判决

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022A 3.部分核心程序 .......................................................... for i 1:12 % 遍历结…

声量 2024 | 从小到大,有哪些好产品曾出现在我们生活里?

点击文末“阅读原文”即可参与节目互动 剪辑、音频 / 老段 运营 / SandLiu 卷圈 监制 / 姝琦 封面 / 姝琦 产品统筹 / bobo 场地支持 / 阿那亚 联合制作 / 声量The Power of Voice 特别鸣谢 / 深夜谈谈播客网络 本期节目录制于第二届「声量The Power of Voice」现场。 在…

【SqL】数据库脚本编写规范和指南

编写本文档的目的是保证在开发过程中产出高效、格式统一、易阅读、易维护的SQL代码。 1 编写目的 2 SQL书写规范 3 SQL编写原则 软件全套资料获取进主页或者本文末个人名片直接获取。