当前位置: 首页 > 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…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

优选算法第十二讲:队列 + 宽搜 优先级队列

优选算法第十二讲&#xff1a;队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

免费PDF转图片工具

免费PDF转图片工具 一款简单易用的PDF转图片工具&#xff0c;可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件&#xff0c;也不需要在线上传文件&#xff0c;保护您的隐私。 工具截图 主要特点 &#x1f680; 快速转换&#xff1a;本地转换&#xff0c;无需等待上…...

scikit-learn机器学习

# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...

wpf在image控件上快速显示内存图像

wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像&#xff08;比如分辨率3000*3000的图像&#xff09;的办法&#xff0c;尤其是想把内存中的裸数据&#xff08;只有图像的数据&#xff0c;不包…...

华为OD机试-最短木板长度-二分法(A卷,100分)

此题是一个最大化最小值的典型例题&#xff0c; 因为搜索范围是有界的&#xff0c;上界最大木板长度补充的全部木料长度&#xff0c;下界最小木板长度&#xff1b; 即left0,right10^6; 我们可以设置一个候选值x(mid)&#xff0c;将木板的长度全部都补充到x&#xff0c;如果成功…...

智能职业发展系统:AI驱动的职业规划平台技术解析

智能职业发展系统&#xff1a;AI驱动的职业规划平台技术解析 引言&#xff1a;数字时代的职业革命 在当今瞬息万变的就业市场中&#xff0c;传统的职业规划方法已无法满足个人和企业的需求。据统计&#xff0c;全球每年有超过2亿人面临职业转型困境&#xff0c;而企业也因此遭…...

uni-app学习笔记三十五--扩展组件的安装和使用

由于内置组件不能满足日常开发需要&#xff0c;uniapp官方也提供了众多的扩展组件供我们使用。由于不是内置组件&#xff0c;需要安装才能使用。 一、安装扩展插件 安装方法&#xff1a; 1.访问uniapp官方文档组件部分&#xff1a;组件使用的入门教程 | uni-app官网 点击左侧…...