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

GOGOGO 抽象

抽象其实也算面向对象特征之一

抽象

含义:当多个子类中的共性向上提取,父类中不知道如何写具体实现,因为提取的共性并不一定能解决子类中实现的功能【同结构不一定同实现代码体】,就需要抽象概念

作用

父类只抽取结构,不抽取实现,并且子类继承了父类之后,必须强制重写该结构

为什么需要用抽象类

当多个子类存在公共特性的时候,会把它们公共的属性和行为向上提取,比如都提取了移动的方法,有跑、跳、滚、爬等等,但是该方法里面,不知道具体写什么,因为父类里面定义的代码,都是子类公共代码,虽然子类可以重写父类的方法,但是没有强制的约束,有些子类可能没有重写,那么调用移动的方法就会出现很大的问题

何为抽象类?

abstract 修饰的类

例:
public abstract class DemoAbstract {类成员……;
}

抽象类里面的成员有哪些?

A、成员变量
B、构造方法
C、普通方法(包含静态/非静态方法)
D、抽象方法【先有抽象类,再有抽象方法;并且只有结构没有方法体】

例:
public abstract class DemoAbstract {//成员变量String name;//无参构造public DemoAbstract(){}//有参构造public DemoAbstract(String name){this.name = name;}//普通方法——静态修饰方法public static void demoMethodStiatic(String name){System.out.println(name);}//普通方法——非静态修饰方法public void demoMethod(String name){System.out.println(name);}//抽象方法abstract void method();
}

如何调用

在实际开发中,一般都是普通类去继承抽象类,从而普通类的实例化,进行方法的使用

在这里插入图片描述

注意事项

A、abstract修饰的类不能被实例化【虽然有构造方法,但是不能被实例化,否则直接编译错误】

在这里插入图片描述

B、抽象方法不能放到普通类里面,只能放到接口或抽象类中

在这里插入图片描述

C、抽象方法只能放到抽象类中,普通类继承抽象类,必须重写抽象类中的方法

在这里插入图片描述

如果是抽象类继承抽象类,不会强制重写基类抽象类中的方法

在这里插入图片描述

PS1:有继承关系,this对于成员变量和普通方法时,在当前类中找不到可以向上(父类)查找,但对于构造方法只能当前类查找,不能向上查找

PS2:@Override注解表示方法重写,专门用来验证方法是否重写成功了的

PS3:对于方法重写,final修饰的方法不能被子类重写

相关文章:

GOGOGO 抽象

抽象其实也算面向对象特征之一 抽象 含义:当多个子类中的共性向上提取,父类中不知道如何写具体实现,因为提取的共性并不一定能解决子类中实现的功能【同结构不一定同实现代码体】,就需要抽象概念 作用 父类只抽取结构&#xff…...

STM32-笔记26-WWDG窗口看门狗

一、简介 窗口看门狗用于监测单片机程序运行时效是否精准,主要检测软件异常,一般用于需要精准检测程序运行时间的场合。 窗口看门狗的本质是一个能产生系统复位信号和提前唤醒中断的6位计数器(有的地方说7位。其实都无所谓&#xff0…...

10.装饰器

装饰器的基本用法创建简单的装饰器带参数的装饰器装饰器链类装饰器内置装饰器 定义:装饰器是一个函数,它接受另一个函数作为参数,并返回一个新的函数。装饰器通常用于在函数执行前后添加额外的功能,如日志记录、权限检查、性能测试等。 1.基…...

uniapp H5页面实现懒加载

在 uniapp 中,要在小的 view 内实现列表懒加载,可以通过以下步骤来实现: 使用 scroll-view 组件来创建一个可滚动的区域。在 scroll-view内 部放置一个list组件,用于显示数据列表。监听 scroll-view 的滚动事件,当滚动…...

STM32使用UART发送字符串与printf输出重定向

首先我们先看STM32F103C8T6的电路图 由图可知,其PA9和PA10引脚分别为UART的TX和RX(注意:这个电路图是错误的,应该是PA9是X而PA9是RX,我们看下图的官方文件可以看出),那么接下来我们应该找到该引脚的定义是什么&#xf…...

NLP初识

目录 0简介一、自然语言概述1. 什么是NLP?2. NLP常用工具0简介 NLP系列开始更新了!!!这个系列主要会介绍一些NLP的基础概念,比如RNN、LSTM、GRU等内容,重头戏放在大语言模型的基础讲解上,其中大语言模型的分享主要由两个方面:1.基础结构(Seq2Seq,Attention,Transfor…...

解決當前IP地址僅適用於本地網路

想要解決“當前IP地址僅適用於本地網路”其實並不困難。本篇文章將介紹其發生的原因以及如何解決。 “僅限本地網路”是什麼意思? 當IP地址為“僅限本地網路”時,意味著設備正在使用私人網路內部IP地址,但無法連接到互聯網。如果將本地IP視…...

Eplan 项目结构(高层代号、安装地点、位置代号)

Eplan中的项目结构分为3个层次: (1)功能面结构。指明这个系统的功能,有什么用途。在EPlan中,指的就是"高层代号()"。 一般指的是线体。 (2)位置面结构。指明该…...

文献分享集:跨模态的最邻近查询RoarGraph

文章目录 1. \textbf{1. } 1. 导论 1.1. \textbf{1.1. } 1.1. 研究背景 1.2. \textbf{1.2. } 1.2. 本文的研究 1.3. \textbf{1.3. } 1.3. 有关工作 2. \textbf{2. } 2. 对 OOD \textbf{OOD} OOD负载的分析与验证 2.1. \textbf{2.1. } 2.1. 初步的背景及其验证 2.1.1. \textbf{2…...

xdoj 判断字符串子串

判断字符串子串 问题描述 编写程序: 判断一个不大于 20 个字符的字符串是否是另一个不大于 20 个字符的字符串的子 串,如果是,则输出子串在父串的起始位置, 如果不是子串,则输出 No!。 输入说明 输入分 2 行: 第…...

n8n - AI自动化工作流

文章目录 一、关于 n8n关键能力n8n 是什么意思 二、快速上手 一、关于 n8n n8n是一个具有原生AI功能的工作流自动化平台,它为技术团队提供了代码的灵活性和无代码的速度。凭借400多种集成、原生人工智能功能和公平代码许可证,n8n可让您构建强大的自动化…...

asp.net core 属性路由和约定路由

在 ASP.NET Core 中,Web API 中的路由(Route)用于确定客户端请求的 URL 与服务器端处理逻辑之间的映射关系。路由机制在 Web API 的开发中非常重要,它帮助定义和管理不同请求路径如何触发特定的控制器和操作方法。 1. 路由概述 …...

【PS不常见教程】实操篇之通道抠图-抠黑色背景的图片

观前小提示:本文内容为我原创成果,若您需要转载或引用其中图片或文字内容,请记得标注来源是“璞子的家”哦,感谢您的尊重,理解与支持,谢谢啦! 如果没看过之前的文章,可以先看之前的两…...

电子电气架构 --- 整车整车网络管理浅析

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所谓鸡汤,要么蛊惑你认命,要么怂恿你拼命,但都是回避问题的根源,以现象替代逻辑,以情绪代替思考,把消极接受现实的懦弱,伪装成乐观面对不幸的…...

【数据结构05】排序

系列文章目录 【数据结构05】排序 . 【算法思想04】二分查找 文章目录 系列文章目录[toc] 1. 基本思想与实现1.1 插入类排序1.1.1 直接插入排序(*)1.1.2 折半插入排序1.1.3 希尔排序(*) 1.2 交换类排序1.2.1 冒泡排序&#xff08…...

推荐系统的三道菜

推荐系统的本质就是在有太多展示内容的情况下,对内容的呈现进行排序。 它的排序依据主要有三个方面: 1. 用户信息 排序的主要依据就是用户感兴趣的程度。 要获知用户的兴趣点,就要搜集“用户信息”,比如用户的历史行为、身份信息、…...

ModuleNotFoundError: No module named XXX

我们在安装了某个包之后,还是提示找不到包 方法一: python -m pip install 包名 -i https://pypi.tuna.tsinghua.edu.cn/simple 方法二: conda install 包名 如果还是找不到包: 请检查环境:...

JAVA:HashMap在1.8做了哪些优化的详细解析

1、简述 HashMap 是 Java 中最常用的数据结构之一,它以键值对的形式存储数据,允许快速的插入、删除和查找操作。在 JDK 1.8 之前,HashMap 主要是基于数组加链表的结构实现的。然而,在面对大量哈希冲突时(即多个键的哈…...

jest使用__mocks__设置模拟函数不生效 解决方案

模拟文件 // __mocks__/axios.js const axios jest.fn(); axios.get jest.fn(); axios.get.mockResolvedValue({data: {undoList: [get data],}, }); export default axios; 测试文件 jest.mock(axios); import Axios from axios;test(mytest, () > {console.log("…...

javaEE-网络原理-1初识

目录 一.网络发展史 1.独立模式 2.网络互联 二.局域网LAN 1.基于网线直连: 2.基于集线器组件: 3.基于交换机组件: 4.基于交换机和路由器组件 ​编辑 三、广域网WAN 四、网络通信基础 1.ip地址 2.端口号: 3.协议 4.五…...

C语言完美演绎8-11

/* 范例&#xff1a;8-11 */#include <stdio.h>void func(int9, int9); /* 在原型声明上作预设初值 */void fun(){func(); /* 若不是在func()函数的原型声明上设定参数预设初值或函数fun()原型声明的话&#xff0c;此行将会错误 */}/* 若参数a没有传入值&#xff0c;…...

如何快速上手Fiji:科学图像分析的终极完整指南

如何快速上手Fiji&#xff1a;科学图像分析的终极完整指南 【免费下载链接】fiji A "batteries-included" distribution of ImageJ :battery: 项目地址: https://gitcode.com/gh_mirrors/fi/fiji Fiji是一个"开箱即用"的ImageJ发行版&#xff0c;专…...

代码重构技巧:改善既有代码的设计

代码重构是提升软件质量的重要手段&#xff0c;它能在不改变功能的前提下优化代码结构&#xff0c;使其更易读、易维护。随着项目迭代&#xff0c;代码往往变得臃肿复杂&#xff0c;而重构技巧能帮助开发者化繁为简。本文将介绍几个实用的重构方法&#xff0c;帮助改善既有代码…...

别再死记硬背欧拉公式了!用Python可视化平面图,5分钟搞懂n-m+r=2

用Python可视化平面图&#xff1a;5分钟玩转欧拉公式的几何奥秘 第一次接触欧拉公式时&#xff0c;那个简洁的n-mr2让我既惊叹又困惑——为什么节点、边和面之间会存在如此精确的数学关系&#xff1f;直到我用代码亲手绘制出各种平面图&#xff0c;看着程序自动计算出的数值完…...

别再为Linux读卡器发愁了!手把手教你用pcsc-lite搞定USB智能卡驱动(附常见错误排查)

Linux智能卡驱动终极指南&#xff1a;从安装到排错的完整解决方案 每次在Linux系统上插上USB智能卡读卡器&#xff0c;却发现系统毫无反应时&#xff0c;那种挫败感简直让人抓狂。作为一位经历过无数次驱动安装失败的"过来人"&#xff0c;我完全理解这种痛苦——明明…...

springboot中医“知源”小程序(文档+源码)_kaic

系统实现用户前台功能&#xff08;前端&#xff09;用户注册模块用户在填写数据的时候必须与注册页面上的验证相匹配否则会注册失败&#xff0c;注册页面的表单验证是通过JavaScript进行验证的&#xff0c;用户名的长度必须在6到18之间&#xff0c;邮箱必须带有符号&#xff0c…...

明日方舟游戏资源库:从数据解包到创意实现的完整技术指南

明日方舟游戏资源库&#xff1a;从数据解包到创意实现的完整技术指南 【免费下载链接】ArknightsGameResource 明日方舟客户端素材 项目地址: https://gitcode.com/gh_mirrors/ar/ArknightsGameResource 在数字内容创作领域&#xff0c;获取高质量游戏素材往往面临版权、…...

在Mac M1(ARM)上部署CentOS 8:VMware Fusion实战与网络配置详解

1. 环境准备与软件下载 在Mac M1上部署CentOS 8虚拟机&#xff0c;首先需要确认你的硬件和软件环境是否满足要求。M1芯片采用ARM架构&#xff0c;这与传统x86架构有很大不同&#xff0c;因此需要特别注意软件版本兼容性。我实际测试发现&#xff0c;如果选错版本会导致安装失败…...

用C语言模拟‘爬井的蠕虫’:一个生动的循环结构教学案例(含时间计算陷阱分析)

用C语言模拟‘爬井的蠕虫’&#xff1a;循环结构的生动教学案例 想象一下&#xff0c;你正在教授C语言的循环结构&#xff0c;而学生们面对枯燥的while和for语句昏昏欲睡。这时&#xff0c;一条蠕虫的故事可以瞬间点燃课堂——它每分钟向上爬几寸&#xff0c;又滑下几寸&#x…...

告别‘Hello World’就卡住:Windows/Mac双平台Android Studio保姆级安装与环境变量配置指南

从零到一&#xff1a;Android Studio全平台安装避坑指南 第一次打开Android Studio时&#xff0c;那个旋转的进度条就像开发者生涯的第一道门槛。我清楚地记得三年前那个深夜&#xff0c;盯着"Gradle构建失败"的红字报错&#xff0c;不得不承认——大多数教程都漏掉了…...