当前位置: 首页 > news >正文

Java的继承

继承(Inheritance)

【1】类是对对象的抽象:

举例:

荣耀20 ,小米 红米3,华为 p40 pro   ---> 类:手机类

【2】继承是对类的抽象:

举例:

学生类:Student:

属性:姓名,年龄,身高,学生编号

方法:吃饭,睡觉,喊叫,学习

教师类:Teacher:

属性:姓名,年龄,身高,教师编号

方法:吃饭,睡觉,喊叫,教学

员工类:Emploee:

属性:姓名,年龄,身高,员工编号

方法:吃饭,睡觉,喊叫,工作

共同的东西:

人类:

属性:姓名,年龄,身高

方法:吃饭,睡觉,喊叫

学生类/教师类/员工类  继承 自   人类  

以后定义代码:

先定义人类:

人类: ---》父类,基类,超类

属性:姓名,年龄,身高

方法:吃饭,睡觉,喊叫

再定义 : ---》子类,派生类

学生类:Student:

属性:学生编号

方法:学习

教师类:Teacher:

属性:教师编号

方法:教学

员工类:Emploee:

属性:员工编号

方法:工作 

子类  继承自  父类 

狗类:

属性:姓名,年龄,身高

方法:吃饭,睡觉,喊叫

我们的继承关系,是在合理的范围中进行的抽取 ,抽取出子类父类的关系:

上面的案例中:

学生类/教师类/员工类  继承 自   人类   ---》合理

学生类/教师类/员工类  继承 自   狗类   ---》不合理

区分:

学生是一个人

教师是一个人

员工是一个人   ---》合理

学生是一个狗    ---》不合理

总结:继承 就是  is - a 的关系 

【3】代码层面的解释: 

先写父类,再写子类:

父类:人类  Person

子类:学生类   Student

1.package com.msb.test03;
2.
3./**
4. * @Auther: msb-zhaoss
5. */
6.public class Person {
7.    //属性:
8.    private int age;
9.    private String name;
10.    private double height;
11.
12.    //提供setter getter方法:
13.
14.    public int getAge() {
15.        return age;
16.    }
17.
18.    public void setAge(int age) {
19.        this.age = age;
20.    }
21.
22.    public String getName() {
23.        return name;
24.    }
25.
26.    public void setName(String name) {
27.        this.name = name;
28.    }
29.
30.    public double getHeight() {
31.        return height;
32.    }
33.
34.    public void setHeight(double height) {
35.        this.height = height;
36.    }
37.
38.    //方法:
39.    public void eat(){
40.        System.out.println("可以吃饭。。。");
41.    }
42.
43.    public void sleep(){
44.        System.out.println("可以睡觉。。。");
45.    }
46.
47.}

1.package com.msb.test03;
2.
3./**
4. * @Auther: msb-zhaoss
5. */
6.public class Student extends Person {//子类Student 继承  父类Person
7.    //属性:
8.    private int sno;//学号
9.
10.    public int getSno() {
11.        return sno;
12.    }
13.
14.    public void setSno(int sno) {
15.        this.sno = sno;
16.    }
17.
18.    //方法:
19.    public void study(){
20.        System.out.println("学生可以学习");
21.    }
22.
23.}
1.package com.msb.test03;
2.
3./**
4. * @Auther: msb-zhaoss
5. */
6.public class Test {
7.    //这是一个main方法,是程序的入口:
8.    public static void main(String[] args) {
9.        //创建子类Student的对象
10.        Student s = new Student();
11.        s.setSno(1001);
12.        s.setAge(18);
13.        s.setName("菲菲");
14.        s.setHeight(180.4);
15.
16.        System.out.println("学生名字为:"+s.getName()+",学生的年纪:"+s.getAge());
17.
18.        //访问方法:
19.        s.study();
20.        s.eat();
21.        s.sleep();
22.    }
23.}
24.

【4】继承的好处:提高代码的复用性

父类定义的内容,子类可以直接拿过来用就可以了,不用代码上反复重复定义了

需要注意的点:

父类private修饰的内容,子类实际上也继承,只是因为封装的特性阻碍了直接调用,但是提供了间接调用的方式,可以间接调用。

【5】总结:

(1)继承关系 :

父类/基类/超类

子类/派生类

子类继承父类一定在合理的范围进行继承的    子类 extends  父类

(2)继承的好处:

1.提高了代码的复用性,父类定义的内容,子类可以直接拿过来用就可以了,不用代码上反复重复定义了

2.便于代码的扩展

3.为了以后多态的使用。是多态的前提。

(3)父类private修饰的内容,子类也继承过来了。

(4)一个父类可以有多个子类。

(5)一个子类只能有一个直接父类。

但是可以间接的继承自其它类。

6)继承具有传递性:

Student --》继承自  Person  ---》继承自Object

Object类是所有类的根基父类。

所有的类都直接或者间接的继承自Object。

【1】private:权限:在当前类中可以访问

【2】default:缺省修饰符:权限:到同一个包下的其他类都可以访问

【3】protected:权限:最大到不同包下的子类

【4】public:在整个项目中都可以访问

总结:

属性,方法:修饰符:四种:private,缺省,protected,public

类:修饰符:两种:缺省,public

以后写代码

一般属性:用private修饰 ,方法:用public修饰

相关文章:

Java的继承

继承(Inheritance) 【1】类是对对象的抽象: 举例: 荣耀20 ,小米 红米3,华为 p40 pro ---> 类:手机类 【2】继承是对类的抽象: 举例: 学生类:Student: 属性&…...

十二、Docker的简介

目录 一、介绍 Docker 主要由以下三个部分组成: Docker 有许多优点,包括: 二、Docker和虚拟机的差异 三、镜像和容器 四、Docker Hub 五、Docker架构 六、总结 一、介绍 Docker 是一种开源的应用容器平台,可以在容器内部…...

卷积神经网络(CNN)多种图片分类的实现

文章目录 前期工作1. 设置GPU(如果使用的是CPU可以忽略这步)我的环境: 2. 导入数据3.归一化4.可视化 二、构建CNN网络模型三、编译模型四、训练模型五、预测六、模型评估 前期工作 1. 设置GPU(如果使用的是CPU可以忽略这步&#…...

【备忘录】Docker容器、镜像删除与资源清理命令

文章目录 一,删除容器二,删除镜像三,清理资源 一,删除容器 # 启动时设置 --rm 选项,容器退出时会自动清理内部文件系统 # --rm 不要与 -d 同时使用,或者说同时使用没有意义 docker run --rm #停止所有的容…...

使用 Splashtop 的开放 API 简化 IT 工作流程

我们的工作方式在不断变化,IT 技术人员必须迅速适应时代的变化。越来越多的公司正在转向混合和远程策略,这为那些在服务台或IT技术人员工作的人增加了额外的工作层。对于系统管理员来说,管理一切都可能变得更加复杂。 找到合适的软件来管理多…...

使用requests库进行网络爬虫:IP请求错误的解决方法

目录 引言 一、了解requests库 二、遇到的问题 三、解决方法 1、随机化IP地址 2、减少请求频率 3、使用User Agent模拟浏览器行为 4、使用Cookies 四、注意事项 五、使用代理池 六、总结 引言 在利用Python的requests库进行网络爬虫操作时,我们有时会遇…...

Web之CSS笔记

Web之HTML、CSS、JS 二、CSS(Cascading Style Sheets层叠样式表)CSS与HTML的结合方式CSS选择器CSS基本属性CSS伪类DIVCSS轮廓CSS边框盒子模型CSS定位 Web之HTML笔记 Web之JavaScript(jQuery)笔记 二、CSS(Cascading Style Sheets层叠样式表&…...

CentOS to KeyarchOS 系统迁移体验

1. KOS(KeyarchOS)——云峦操作系统简介 KeyarchOS 即云峦操作系统(简称 KOS)是浪潮信息基于 Linux 内核、龙蜥等开源技术自主研发的一款服务器操作系统,支持x86、ARM 等主流架构处理器,广泛兼容传统 CentOS 生态产品和创新技术产品,可为用户…...

如何从零开始制作一本企业宣传画册?

最近公司领导要求为公司制作一本企业宣传画册,用来展示我们的产品和服务,增加品牌影响力。可是,像我这种零基础的小白,完全不知道如何制作啊?对此我感到很焦虑,怕做不好影响公司形象,也怕耽误时…...

Android问题笔记四十六:解决open failed: EACCES (Permission denied) 问题

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列点击跳转>ChatGPT和AIGC 👉关于作者 专…...

Universal adversarial perturbations(2017 CVPR)

Universal adversarial perturbations----《普遍对抗扰动》 通俗UAP算法步骤理解:对于 x i ∈ X {x_i} \in X xi​∈X 的每个采样数据点,比较 k ^ ( x i v ) \hat k({x_i} v) k^(xi​v) 与 k ^ ( x i ) \hat k({x_i}) k^(xi​) ,如果 k…...

前台查看日志功能

前台 <template><div id="logContent"><div class="onlinlog"><div class="left"><div class="number">显示字符数:<span><el-selectv-model="strNumber"placeholder="50000…...

mysqlbinlog使用记录

首先要确认mysql启用了binlog功能。一般默认启用。 mysql> select log_bin; ----------- | log_bin | ----------- | 1 | ----------- 然后确认binlog目录 mysql> select log_bin_basename; ---------------------------- | log_bin_basename | -----…...

学习c#的第十八天

目录 C# 文件的输入与输出 C# I/O 类 FileStream 类 文本文件的读写 StreamReader 类 StreamWriter 类 实例 二进制文件的读写 BinaryReader 类 BinaryWriter 类 实例 Windows 文件系统的操作 DirectoryInfo 类 FileInfo 类 实例 C# 文件的输入与输出 一个 文件…...

element + vue3,级联选择器实现省市区

由于es6支持哈希&#xff0c;所以数据量只要不太大&#xff0c;就不需要对el-cascader进行点击后在调接口出现下一级&#xff0c;很简单的就是直接获取所有数据。 <template><div><el-cascader :modelValue"modelValue" :props"innerProps"…...

程序员的护城河-并发编程

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring源码、JUC源码&#x1f525;如果感觉博主的文章还不错的话&#xff0c;请&#x1f44d;三连支持&…...

外卖小程序系统:数字化餐饮的编码之道

在当今数字化时代&#xff0c;外卖小程序系统成为了餐饮业的一项技术巨制。这个系统不仅提供了便捷的点餐体验&#xff0c;更通过先进的技术手段&#xff0c;实现了高效订单处理、实时配送追踪以及个性化推荐。让我们深入了解外卖小程序系统的技术魔法&#xff0c;一起揭秘数字…...

单链表相关面试题--1.删除链表中等于给定值 val 的所有节点

/* 解题思路&#xff1a;从头节点开始进行元素删除&#xff0c;每删除一个元素&#xff0c;需要重新链接节点 */ struct ListNode* removeElements(struct ListNode* head, int val) {if(head NULL)return NULL;struct ListNode* cur head;struct ListNode* prev NULL;while…...

一生一芯18——Chisel模板与Chisel工程构建

Chisel模板链接如下&#xff1a; 链接: https://pan.baidu.com/s/1DNDKpz5VnTxPgoZBBOd-Ww?pwdrevg 提取码: revg Chisel转Verilog模板如下&#xff1a; 链接: https://pan.baidu.com/s/1T9JQL5BccxqI4bscfU-JyA?pwd7rw2 提取码: 7rw2 以下使用sbt作为构建工具 Chisel项目构…...

ES6 class类

基本介绍 1. constructor constructor()方法是类的默认方法&#xff0c;通过new命令生成对象实例时&#xff0c;自动调用该方法。 一个类必须有constructor()方法&#xff0c;如果没有显式定义&#xff0c;一个空的constructor()方法会被默认添加。如&#xff1a; class Po…...

PHP文件读取漏洞全面剖析:触发点与利用技术

PHP文件读取漏洞全面剖析&#xff1a;触发点与利用技术 引言 PHP作为Web开发中最流行的语言之一&#xff0c;其文件操作功能强大但也暗藏风险。文件读取漏洞是PHP应用中最常见的安全问题之一&#xff0c;攻击者利用这些漏洞可以读取服务器敏感文件&#xff0c;甚至实现远程代…...

Elasticsearch 常用操作命令整合 (cURL 版本)

Elasticsearch 常用操作命令整合 (cURL 版本) 集群管理 查看集群健康状态 curl -X GET "localhost:9200/_cluster/health?pretty"查看节点信息 curl -X GET "localhost:9200/_cat/nodes?v"查看集群统计信息 curl -X GET "localhost:9200/_clus…...

热成像实例分割电力设备数据集(3类,838张)

在现代电力系统的运维管理中&#xff0c;红外热成像已经成为检测设备隐患、预防故障的重要手段。相比传统可见光图像&#xff0c;红外图像可揭示设备温度分布&#xff0c;从而更直观地反映过热、老化等问题。而在AI赋能下&#xff0c;通过实例分割技术对热成像中的电力设备进行…...

ffmpeg(五):裁剪与合并命令

裁剪&#xff08;剪切&#xff09; 精准裁剪&#xff08;有转码&#xff0c;支持任意起止时间&#xff09; # 从第 10 秒到第 30 秒&#xff0c;重新编码 ffmpeg -i input.mp4 -ss 00:00:10 -to 00:00:30 -c:v libx264 -c:a aac output.mp4快速裁剪&#xff08;无转码&#x…...

pandas 字符串存储技术演进:从 object 到 PyArrow 的十年历程

文章目录 1. 引言2. 阶段1&#xff1a;原始时代&#xff08;pandas 1.0前&#xff09;3. 阶段2&#xff1a;Python-backed StringDtype&#xff08;pandas 1.0 - 1.3&#xff09;4. 阶段3&#xff1a;PyArrow初次尝试&#xff08;pandas 1.3 - 2.1&#xff09;5. 阶段4&#xf…...

基于dify的营养分析工作流:3分钟生成个人营养分析报告

你去医院做体检&#xff0c;需要多久拿到体检报告呢&#xff1f;医院会为每位病人做一份多维度的健康报告吗&#xff1f;"人工报告需1小时/份&#xff1f;数据误差率高达35%&#xff1f;传统工具无法个性化&#xff1f; Dify工作流AI模型的组合拳&#xff0c;正在重塑健康…...

Android端口转发

如上图所示&#xff0c;有一个Android设备&#xff0c;Android设备里面有主板&#xff0c;主板上有网络接口和Wi-Fi&#xff0c;网络接口通过网线连接了一个网络摄像头&#xff0c;这就跟电脑一样&#xff0c;电脑即可以通过网线接入一个网络&#xff0c;也可以同时用Wi-Fi接入…...

【网站建设】不同类型网站如何选择服务器?建站项目实战总结

做了几个建站项目后,深刻体会到一件事:不同类型的网站,所采用的服务器策略是完全不同的。 如果选错了服务器方案,可能带来过高的成本、过低的性能,甚至上线失败。 这篇文章分享一下我在实战中的经验,供正在做建站项目的朋友参考。 🚩 1️⃣ 纯展示型网站 —— 静态服务…...

行为型设计模式之Mediator(中介者)

行为型设计模式之Mediator&#xff08;中介者&#xff09; 1&#xff09;意图 用一个中介对象来封装一系列的对象的交互。中介者使各对象不需要显示的相互引用&#xff0c;从而使其耦合松散&#xff0c;而且可以独立地改变它们之间的交互。 2&#xff09;结构 其中&#xff…...

IDEA集成JRebel插件,实现实时热部署

系列文章目录 文章目录 系列文章目录一、JRebel是什么&#xff1f;1.1、对比传统开发流程1.2、JRebel特性以及优势 二、IDEA集成JRebel三、IDEA以JRebel运行报错处理四、IDEA以JRebel运行演示实时热部署 一、JRebel是什么&#xff1f; JRebel 是一款针对 Java 开发的热部署工具…...