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

Java 抽象知识笔记总结(油管)

Java系列文章目录

Java Optional 容器笔记总结


文章目录

  • Java系列文章目录
  • 一、前言
  • 二、学习内容:
  • 三、问题描述
  • 四、解决方案:
    • 4.1 抽象类的使用
    • 4.2 抽象类与接口的区别
      • 4.2.1 接口复习
      • 4.2.2 具体区别
      • 4.2.3 使用场景
        • 4.2.3.1 抽象类使用场景
        • 4.2.3.2 接口使用场景
  • 五、总结:
    • 5.1 学习总结:

一、前言

目的:学习Java抽象相关知识

  • 对油管博主John讲解的抽象相关知识进行笔记总结

二、学习内容:

  • 抽象类的使用
  • 抽象类与接口的区别

三、问题描述

  • 抽象类相关知识没有实践经验

四、解决方案:

4.1 抽象类的使用

抽象类注意事项

  • 新建的类不能是抽象类
  • 子类继承抽象类必须实现抽象方法

参考代码如下:

package org.example;public abstract class Animal {int age;public String name;public abstract void makeNoise();}
package org.example;public interface AnimalStuff {//int age = 5;void pool();}
package org.example;public class Cat extends Animal implements AnimalStuff{@Overridepublic void makeNoise() {System.out.println("Meow");}@Overridepublic void pool() {System.out.println("Cat is pool");}
}
package org.example;public class Main {public static void main(String[] args) {Cat cat = new Cat();cat.makeNoise();cat.pool();}
}
  • 我们可以通过子类继承抽象类来实现抽象方法

在这里插入图片描述

4.2 抽象类与接口的区别

4.2.1 接口复习

  • 接口里面包含终态静态与抽象

在这里插入图片描述

4.2.2 具体区别

我们已经知道Cat类不管是继承抽象类还是接口
都能在子类实现抽象方法
既然都能实现为什么我们还需要抽象类呢

区别:

  • 一个子类只能继承一个父类,但可以继承多个接口
  • 接口字段必须是静态与终态(终态已经定义了对子类来说没用
  • 抽象类可以有抽象方法也可以用其他方法灵活性高

相同点:

  • 抽象方法必须实现

4.2.3 使用场景

4.2.3.1 抽象类使用场景

Animal抽象类与Cat类
Cat与Animal是隶属关系(猫是动物)大部分动物一定会发声
所以抽象类Animal就可以定义发声的抽象方法让子类一定实现发声方法

  • 类相关性较高
4.2.3.2 接口使用场景

Cat类与AnimalStuff接口
同理,平级关系几乎大部分事务都能用这个抽象方法
所以方法使用与类关系不大

  • 类相关性较低

五、总结:

5.1 学习总结:

抽象类的作用:

  • 定义共享的属性和行为。
  • 提供一种规范,让子类去实现。
  • 避免"上帝类"(只有一个超级类做所有事情),鼓励模块化的继承。

抽象类与接口区别:

  • 一个子类只能继承一个父类,但可以继承多个接口
  • 接口字段必须是静态与终态(终态已经定义了对子类来说没用)
  • 抽象类可以有抽象方法也可以用其他方法灵活性高

声明:如本内容中存在错误或不准确之处,欢迎指正。转载时请注明原作者信息(麻辣香蝈蝈)。

相关文章:

Java 抽象知识笔记总结(油管)

Java系列文章目录 Java Optional 容器笔记总结 文章目录 Java系列文章目录一、前言二、学习内容:三、问题描述四、解决方案:4.1 抽象类的使用4.2 抽象类与接口的区别4.2.1 接口复习4.2.2 具体区别4.2.3 使用场景4.2.3.1 抽象类使用场景4.2.3.2 接口使用…...

鲜花销售小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,农户管理,产品分类管理,农产品管理,咨询信息管理,咨询回复管理,系统管理 微信端账号功能包括:系统首页&…...

Golang | Leetcode Golang题解之第324题摆动排序II

题目&#xff1a; 题解&#xff1a; func wiggleSort(nums []int) {n : len(nums)x : (n 1) / 2target : quickSelect(nums, x-1)transAddress : func(i int) int { return (2*n - 2*i - 1) % (n | 1) }for k, i, j : 0, 0, n-1; k < j; k {tk : transAddress(k)if nums[t…...

32、Python之面向对象:对象的表示,再论Python是dict包括语法糖

引言 在前面介绍Python容器的时候&#xff0c;我们曾经用过这种夸张的表述&#xff0c;“Python就是包裹在一堆语法糖中的字典”。虽然夸张&#xff0c;其实更多的是为了突出Python中dict的强大之处。今天这篇文章&#xff0c;打算看下Python中类对象、实例对象的表示及内存管理…...

高级java每日一道面试题-2024年8月07日-网络篇-你对TCP的三次握手了解多少?

如果有遗漏,评论区告诉我进行补充 面试官: 你对TCP的三次握手了解多少? 我回答: TCP&#xff08;Transmission Control Protocol&#xff09;的三次握手是TCP建立连接的过程&#xff0c;它是TCP/IP协议族中一个关键的概念。三次握手确保了双方之间的连接是双向的&#xff0…...

vite.config.ts中proxy的rewrite理解

服务器配置都是在开发情况下适用&#xff01;&#xff01; // 服务器配置 server: {//允许IP访问host: "0.0.0.0",//应用端口&#xff08;默认&#xff1a;3000&#xff09;port: Number(env.VITE_APP_PORT),// 运行是否自动打开浏览器open: true,// 代理配置proxy:…...

大数据环境下用户数据隐私安全防护系统的设计与实现(论文+源码)_kaic

摘 要 现如今互联网已在世界范围内广泛的应用和发展&#xff0c;特别是移动互联网Web 技术快速发展&#xff0c;然而最近几年经常发生互联网用户信息泄露及财产损失问题&#xff0c;网络安全漏洞严重威胁Web应用程序安全及互联网用户的网络使用安全&#xff0c;因此现急需一…...

基于springboot+vue+uniapp的“口腔助手”小程序

开发语言&#xff1a;Java框架&#xff1a;springbootuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#…...

算法刷题之链表

// 单链表 struct ListNode {int val; // 节点上存储的元素ListNode *next; // 指向下一个节点的指针ListNode(int x) : val(x), next(NULL) {} // 节点的构造函数 };ListNode* head new ListNode(5); 重要方法&#xff1a;虚拟头节点 个人方法&#xff1a;指针转为数组…...

C# 设计模式之适配器模式

总目录 前言 在实际的开发过程中&#xff0c;由于需求的变化和扩展&#xff0c;我们的代码也需要做相应的扩展。想象这样一个场景&#xff0c;原项目中接口返回的数据是XML格式的数据&#xff0c;但现在来了一个新客户&#xff0c;它期望接口返回的数据类型为json格式的。想要…...

BFS实现迷宫最短路径

结合队列的知识利用 广度优先遍历&#xff0c;通过对能走的路径的记录以及对走过路径的标记&#xff0c;进行多条路搜查 一、理论基础 如下图的迷宫&#xff1a; 选取所走方向&#xff08;针对某一个位置&#xff09;下&#xff0c;右&#xff0c;上&#xff0c;左&#xff0…...

Linux IPC解析:匿名命名管道与共享内存

目录 一.IPC机制介绍二.匿名与命名管道1.匿名管道2.命名管道3.日志 三.共享内存三.System V 标准1.System V简介2.IPC在内核的数据结构设计3.信号量 一.IPC机制介绍 IPC&#xff08;Inter-Process Communication&#xff0c;进程间通信&#xff09;是计算机系统中不同进程之间交…...

Codeforces Round 964 (Div. 4) A~G

封面原图 画师ideolo A - AB Again? 题意 给你一个两位数&#xff0c;把他的个位和十位加起来 代码 #include <bits/stdc.h> using namespace std; typedef long long ll; typedef double db; typedef pair<int,int> pii; typedef pair<ll,ll> pll;voi…...

单体应用提高性能和处理高并发-使用缓存

要在单体应用中实现高并发&#xff0c;并利用缓存技术来提高性能&#xff0c;需要深入了解缓存的应用场景、选择合适的缓存工具&#xff0c;以及在具体代码中实现缓存策略。以下是详细说明如何在单体应用中使用缓存来处理高并发的内容&#xff0c;包括常见的缓存框架和实际的代…...

ollama教程——使用LangChain调用Ollama接口实现ReAct

ollama入门系列教程简介与目录 相关文章: Ollama教程——入门:开启本地大型语言模型开发之旅Ollama教程——模型:如何将模型高效导入到Ollama框架Ollama教程——兼容OpenAI API:高效利用兼容OpenAI的API进行AI项目开发Ollama教程——使用LangChain:Ollama与LangChain的强强…...

【Bug分析】Keil报错:error: #18:expected a “)“问题解决

【Bug分析】Keil报错&#xff1a;error: #18:expected a “&#xff09;”问题解决 前言bug查找bug解决方法小结 前言 keil编译时出现一个问题&#xff0c;缺少一个右括号。然后仔细查看代码&#xff0c;并没有括号缺失。 如下&#xff0c;代码括号正常。 bug查找 站内文章…...

MAC上设置快捷打开终端以及如何运用剪切快捷键

在Mac上设置一个快捷键&#xff0c;在当前文件夹中打开终端&#xff0c;你可以使用Automator创建一个服务&#xff0c;然后将其分配给一个快捷键。以下是步骤&#xff1a; 1. 创建Automator服务 打开 Automator&#xff08;你可以在应用程序文件夹中找到它&#xff0c;或使用…...

linux docker安装 gitlab后忘记root密码如何找回

1. docker ps - a 查看当前gitlab 当前的id2. docker exec -it gitlab /bin/bash 进入docker git 容器中【gitlab 注意可以上图中的name&#xff0c;也可以是id都可以的】,如下图3.gitlab-rails console -e production 输入该指令&#xff0c;启动Ruby on Rails控制台&…...

C语言典型例题27

《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 习题2.4 用下面的scanf函数输入数据 使a3,b7,x8.5,y71.8,c1A,c2a。问在键盘上怎么输入 代码 //《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 //习题2.4 用下面的scanf函数输入数据&#xff0c;使…...

clion开发stm32f4系列(一)————移植rt-thread os系统

前言 本次使用的rt-thread的版本为5.0.2基于rt-thread sudio生成的源码进行拷贝和修改工程基于上次创建工程的项目进行修改。本次工程只是用了serial和pin组件,其他后面用到再进行添加 拷贝rt-thread源码库 通过CMakeLists来进行管理 顶级(rt-thread目录) cmake_minimum_req…...

记一次Webshell流量分析 | 添柴不加火谛

1. 哑铃图是什么&#xff1f; 哑铃图&#xff08;Dumbbell Plot&#xff09;&#xff0c;有时也称为DNA图或杠铃图&#xff0c;是一种用于比较两个相关数据点的可视化图表。 它源于人们对更有效数据比较方式的持续探索。 在传统的时间序列比较中&#xff0c;我们通常使用两条折…...

收藏!程序员转型AI必看:手把手教你构建百万级文档RAG系统

本文聚焦于企业级大模型应用中的RAG技术&#xff0c;针对10万级文档规模&#xff0c;探讨了如何构建一个高效、稳定且可扩展的RAG系统。文章从RAG的基本原理出发&#xff0c;分析了检索慢、召回率低和部署复杂三大痛点&#xff0c;并提出了相应的优化策略&#xff0c;包括文档预…...

37、web常见的攻击方式有哪些?如何防御?

一、先给面试官一个总览Web 常见攻击我通常会从 前端安全、认证安全、传输安全、服务端安全 四类来理解。 前端最常见的是 XSS、CSRF、点击劫持&#xff1b; 认证相关有 SQL 注入、暴力破解、会话劫持&#xff1b; 传输层有 中间人攻击&#xff1b; 工程层面还要关注 文件上传、…...

cv_resnet50_face-reconstruction效果可视化:热力图分析重建误差分布与关键面部区域精度

cv_resnet50_face-reconstruction效果可视化&#xff1a;热力图分析重建误差分布与关键面部区域精度 你是不是也好奇&#xff0c;一个人脸重建模型到底“重建”得怎么样&#xff1f;它能把你的五官还原得一模一样吗&#xff1f;眼睛、鼻子、嘴巴这些关键部位&#xff0c;哪个重…...

释放AutoCAD潜能:PyAutoCAD自动化开发指南

释放AutoCAD潜能&#xff1a;PyAutoCAD自动化开发指南 【免费下载链接】pyautocad AutoCAD Automation for Python ⛺ 项目地址: https://gitcode.com/gh_mirrors/py/pyautocad 重新定义CAD工作流&#xff1a;为什么选择PyAutoCAD&#xff1f; 你是否曾陷入AutoCAD重复…...

FreakStudio滞

环境安装 pip install keystone-engine capstone unicorn 这3个工具用法极其简单&#xff0c;下面通过示例来演示其用法。 Keystone 示例 from keystone import * CODE b"INC ECX; ADD EDX, ECX" try: ks Ks(KS_ARCH_X86, KS_MODE_64) encoding, count ks.…...

编程常见函数--求反序int(C、C++、Python版)

目录 函数功能 思路 具体步骤 变量初始化 循环条件 反序数计算 返回值 示例说明 注意事项 C C通用代码 Python代码 函数功能 该函数用于计算一个整数的反序数&#xff0c;常用于判断对称性或者反序的场景 例如&#xff0c;输入 123&#xff0c;输出 321&#xff1b;输…...

2026年AI标书工具哪个最好用?钛投标一周年感恩回馈

钛投标一周年感恩回馈&#xff1a;致敬20万老用户&#xff01;生成标书即抽天猫卡与23万份免单券2026年AI标书工具哪个最好用&#xff1f;感谢20万企业的信赖&#xff0c;行业标杆钛投标迎来一周年庆典&#xff01;为回馈老用户的一路相伴&#xff0c;4月3日起开启千万级宠粉狂…...

原神桌面工具Snap.Hutao:数据管理与资源规划全方案

原神桌面工具Snap.Hutao&#xff1a;数据管理与资源规划全方案 【免费下载链接】Snap.Hutao 实用的开源多功能原神工具箱 &#x1f9f0; / Multifunctional Open-Source Genshin Impact Toolkit &#x1f9f0; 项目地址: https://gitcode.com/GitHub_Trending/sn/Snap.Hutao …...

【Python机器学习】零基础掌握SGDOneClassSVM线性分类器

如何高效地识别异常数据点? 在数据分析、金融风控、网络安全等多个领域,识别异常数据点是一个常见但又具有挑战性的问题。传统的方法可能需要复杂的计算和专门的知识背景,但有没有一种更简单、更直观的方式来解决这个问题呢? 假设一个金融公司需要识别可能的欺诈信用卡交…...