抽象方法和抽象类

2023-11-05

目录

一 .抽象方法和抽象类

1、 区分普通方法和抽象方法

2、 区分普通类和抽象类

3、 定义一个抽象类

4、 使用抽象类描述抽象的事物

5、抽象类和抽象方法的优势

6、 抽象类的局限性

一 .抽象方法和抽象类

 

1、 区分普通方法和抽象方法

(1)在Java中,当一个类的方法被abstract关键字修饰时,该方法称为抽象方法。

(2)抽象方法所在的类必须定义为抽象类。

(3)当一个方法被定义为抽象方法后,意味着该方法不会有具体的实现(没有方法体),而是在

抽象类的子类中通过方法重写进行实现。

(4)定义抽象方法的语法格式如下:

[访问修饰符] abstract <返回类型> <方法名>([参数列表]);

public abstract void openDoor();

-->抽象方法需要使用abstract修饰,普通方法不需要。

-->抽象方法没有方法体,普通方法没有。

-->抽象方法所在的类必须被定义为抽象类。

-->抽象方法在子类中必须被实现(子类要重写父类中的抽象方法),如果子类不实现,则子类要

定位为抽象类。5

-->private关键字不能用来修饰抽象方法。

-->abstract修饰符不能和final修饰符一起使用。

2、 区分普通类和抽象类

(1)在Java中,当一个类被abstract关键字修饰时,该类称为抽象类。

(2)定义抽象类的语法格式如下:
 

abstract class <类名>{

//代码

}

-->抽象类需要用修饰符abstract修饰,普通类不需要。

-->普通类可以实例化,抽象类不能被实例化。

-->抽象类中可以有抽象方法也可以没有抽象方法,可以有普通方法也可以没有普通方法。

-->抽象类中可以包含普通类包含的一切成员。

3、 定义一个抽象类

当一个类被定义为抽象类时,它可以包含各种类型的成员,包括属性、方法等。其中方法又可以分

为普通方法和抽象方法。
 

public abstract class 类名称{

修饰符 abstract 返回类型 方法名();

修饰符 返回类型 方法名(){

//方法体

}

}

4、 使用抽象类描述抽象的事物

当一个类实例化没有意义时,可以将该类定义为抽象类

5、抽象类和抽象方法的优势

(1)抽象类中已经实现的方法可以被子类使用,使代码可以被复用。

(2)抽象类中的抽象方法,子类需要进行重写,保证了子类具有自身的独特性。

6、 抽象类的局限性

(1)抽象类有时候会出现代码冗余的问题。

(2)类的继承是单根继承,一个类只能直接继承一个类。

public abstract class Door { }

这里是Java基础项目:http://本文链接:https://blog.csdn.net/m0_67979925/article/details/126948962

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

抽象方法和抽象类 的相关文章

  • Maven 2:如何将当前项目版本打包在WAR文件中?

    我正在使用 Maven 2 构建我的 Java 项目 并且正在寻找一种向用户呈现 pom xml 当前版本号的方法 例如使用 Servlet 或 JSP 据我所知 最好的方法是 Maven 将版本号作为文本文件打包到 WAR 中 这使我能够
  • Hashmap并发问题

    我有一个哈希图 出于速度原因 我希望不需要锁定 假设我不介意过时的数据 同时更新它和访问它会导致任何问题吗 我的访问是获取 而不是迭代 删除是更新的一部分 是的 这会导致重大问题 一个例子是向散列映射添加值时可能发生的情况 这可能会导致表重
  • Spring3/Hibernate3/TestNG:有些测试给出 LazyInitializationException,有些则没有

    前言 我在单元测试中遇到了 LazyInitializationException 的问题 而且我很难理解它 正如你从我的问题中看到的那样Spring 中的数据库会话 https stackoverflow com questions 13
  • 尝试使用 JRI 将 R 与我的 Java 应用程序集成,但出现错误。谁能解释一下原因和解决办法吗?

    我需要将 Java 与 R 集成来运行一些数学命令并使用 R 的功能进行绘图 以下部分代码给出了错误 public static void main String args HelloRWorld r new HelloRWorld r h
  • 容器中的 JVM 计算处理器错误?

    最近我又做了一些研究 偶然发现了这一点 在向 OpenJDK 团队抱怨之前 我想看看是否有其他人观察到这一点 或者不同意我的结论 因此 众所周知 JVM 长期以来忽略了应用于 cgroup 的内存限制 众所周知 现在从 Java 8 更新某
  • Java-如何将黑白图像加载到二进制中?

    我在 FSE 模式下使用 Java 和 swing 我想将完全黑白图像加载为二进制格式 最好是二维数组 并将其用于基于掩码的每像素碰撞检测 我什至不知道从哪里开始 过去一个小时我一直在研究 但没有找到任何相关的东西 只需将其读入Buffer
  • 所有平台上的java

    如果您想用 java 为 Windows Mac 和 Linux 编写桌面应用程序 那么所有这些代码都相同吗 您只需更改 GUI 即可使 Windows 应用程序更像 Windows 等等 如果不深入细节 它是如何工作的 Java 的卖点之
  • 从 @JsonProperty 值获取枚举常量

    我有一个标有 JsonProperty 的枚举 用于使用 Jackson 进行 JSON 序列化 反序列化 并且希望获取给定字符串 JsonProperty 的枚举值 public enum TimeBucket JsonProperty
  • 异步迭代器

    我有以下代码 while slowIterator hasNext performLengthTask slowIterator next 由于迭代器和任务都很慢 因此将它们放入单独的线程中是有意义的 这是对迭代器包装器的快速而肮脏的尝试
  • 当您在数组列表上调用remove(object o)时,它如何比较对象?

    当您在 java 中的数组列表上调用remove object o 时 它如何比较对象以找到要删除的正确对象 它使用指针吗 或者它使用 Comparable 接口来比较对象吗 ArrayList remove 依赖于对象的实现Equal方法
  • 在 Java 中将弯音发送到 MIDI 音序器

    我了解启动和运行 MIDI 音序器的基础知识 并且希望能够在播放过程中增加 减小序列的音高 但弯音是发送到合成器而不是音序器的消息 我尝试将音序器的接收器设置为合成器的发射器 当我发送弯音短消息时 音序器保持相同的音调 但随后合成器以新的弯
  • 如何将 arraylist 从 servlet 传递到 javascript?

    我通过在属性中设置数组列表并将其转发到 jsp 来从 servlet 传递数组列表 Servlet ArrayList
  • JSch中如何设置文件类型和文件传输模式?

    我使用 Apache Common NetFTPClient并设置了我的ftpClient在上传文件之前使用如下所示的方法 ftpClient setFileType FTP BINARY FILE TYPE ftpClient setFi
  • 如何在Java媒体框架中学习.wav持续时间?

    我正在尝试使用 java 媒体框架将 mov 文件与 wav 文件合并 因此我需要知道它们的持续时间 我怎样才能做到这一点 任何想法 将不胜感激 您可以使用以下方式了解声音文件的持续时间 即 VitalyVal 的第二种方式 import
  • 如何解决 PDFBox 没有 unicode 映射错误?

    我有一个现有的 PDF 文件 我想使用 python 脚本将其转换为 Excel 文件 目前正在使用PDFBox 但是存在多个类似以下错误 org apache pdfbox pdmodel font PDType0Font toUnico
  • 公共方法与公共 API

    在干净的代码书中 有一个观点是 公共 API 中的 Javadocs 同样 Effective java 一书也有这样的内容 项目 56 为所有公开的 API 元素编写文档注释 所以这就是我的问题 所有公共方法都被视为公共 API 吗 它们
  • 对于当前月份和日期但年份不同的日期,经过的月份计算未给出正确的结果

    我正在尝试计算自特定日期以来经过的月份 该函数工作正常 尽管如果我将今天的日期与过去的不同年份放在一起 它会给我一个月的差异 不到一个月 假设对于所有日期 该函数都运行良好 除了 如果今天是 2014 03 06 YYYY MM DD 并且
  • 无法使用 wget 在 CentOS 机器上安装 oracle jdk

    我想在CentOS上安装oracle java jdk 8 我无法安装 java jdk 因为当我尝试使用命令安装 java jdk 时 root ADARSH PROD1 wget no cookies no check certific
  • 失败时石英重试

    假设我有一个这样配置的触发器
  • Java:使用 Graph API 在线更新 Sharepoint 上的 docx 文件

    我在使用 Java 在线更新 Sharepoint 上的 docx 文件时遇到问题 首先 我检查了构建 PUT 请求的 URL 此处 并使用此请求 PUT drives drive id items item id content 我首先使

随机推荐

  • Redis 分布式锁实现

    Redis 分布式锁 分布式锁 满足分布式系统或集群模式下多进程可见并且互斥的锁 特点 多线程可见 互斥 高可用 高性能 高并发 安全性 可重入性 重试机制 锁超时自动续期等 加锁之后 对整个分布式集群都有效 基于数据库 redis缓存 使
  • JAVA与C++通信之字节序

    1 BIG ENDIAN LITTLE ENDIAN跟多字节类型的数据有关的比如int short long型 而对单字节数据byte却没有影响 BIG ENDIAN就是低位字节排放在内存的低端 高位字节排放在内存的高端 而LITTLE E
  • 如何设置vscode默认谷歌浏览器打开

    突然发现自己写完的网页都是电脑默认浏览器打开 而看到一些视频博主都是默认谷歌浏览器打开 然后就找到了设置的办法 记录一下 设置的步骤 1 在extensions 扩展商店 中安装open in browser 插件 2 左下角中找到sett
  • 数据库服务器的监听系统在哪,数据库监控,数据库监控工具--运维监控系统PIGOSS BSM...

    数据就是一切 各类数据在企业生产经营中都起着至关重要的作用 是所有的经营活动所依赖的 不可或缺的信息 数据就犹如企业经营者的眼睛一样 通过数据可以反映出所有的问题 就犹如舵手依赖导航一样 现在每个企业和组织发展都需要依赖大量的数据 数据也成
  • java new list 对象_Java中List集合对象去重及按属性去重的8种方法

    最近在写一些关于java基础的文章 但是我又不想按照教科书的方式去写知识点的文章 因为意义不大 基础知识太多了 如何将这些知识归纳总结 总结出优缺点或者是使用场景才是对知识的升华 所以我更想把java相关的基础知识进行穿针引线 进行整体上的
  • 微信小游戏的电量监听

    在说小游戏的电量监听事件之前 我想先提一下小程序的电量监听事件 在微信小程序中 是没有电量监听事件的 因为小程序没有全屏 手机端的电量和wifi等信息一直可以看得到 所以小程序里就没有这样的api了 说回小游戏的电量监听 在微信小游戏的ap
  • Gitlab的API调用

    1 概述 Gitlab作为一个开源 强大的分布式版本控制系统 已经成为互联网公司 软件开发公司的主流版本管理工具 使用过Gitlab的都知道 想要提交一段代码 可以通过git push提交到远程仓库 也可以直接在Gitlab平台上修改提交
  • DeFi泡沫、NFT以及市场调整

    DeFi有泡沫吗 有 但谁又没有呢 如果有泡沫 DeFi的泡沫肯定不是最大的那个 截止到蓝狐笔记写稿时 按照Coingecko的统计 DeFi市值大约是135亿美元 XRP市值大约104亿美元 整个加密市场的总市值为3 418亿美元 跟整体
  • 【从0开始学架构笔记】01 基础架构

    文章目录 一 架构的定义 1 系统与子系统 2 模块与组件 3 框架与架构 4 重新定义架构 二 架构设计的目的 三 复杂度来源 高性能 1 单机复杂度 2 集群复杂度 2 1 任务分配 2 2 任务分解 微服务 四 复杂度来源 高可用 1
  • 计算机组成原理复习总结

    计算机组成原理复习总结 一 缩写词解释 CPU 中央处理器 ALU 算术逻辑单元 I O 输入输出接口 RAM 随机存储器 SRAM 静态随机访问存储器 DRAM 动态随机访问存储器 ROM 只读存储器 PROM 用户可编程的只读存储器 E
  • Verilog中模块的实例化

    首先创建一个模块为test 目录为这样 在模块test中写入 module test a b c input a b output c wire d e assign c a b and a1 d a b or a2 e a b rt pi
  • cpu风扇自动调速_电脑主板上CPU_FAN、SYS_FAN、CHA_FAN、CPU_OPT接口知识科普

    我们在电脑组装的过程中 安装过程虽然简单 不过往往都是在接线上遇到问题 经常有装机用户误将CPU散热器的供电线插到了SYS FAN上 虽然风扇可以转动 不过在开机可能会有F1报错 CPU Fan Error 同时也导致了CPU散热器无法智能
  • 为什么我们推荐使用VPC

    最近我在跟一些客户沟通的过程中发现有人对使用VPC Virtual Private Cloud 的优势还不是特别清楚 部分人认为只有那些需要把自己的数据中心与AWS进行连接的企业才需要使用VPC 实际上 我们的确可以通过VPC及其他相关的A
  • 多线程的安全问题一:同步方法与同步代码块

    一 引出线程安全问题 多个线程操作共享数据时 如果线程不完整 则很可能出现线程安全问题 线程执行不确定导致结果不确定 这里有一个三窗口买票程序 共100张票 public class Main2 public static void mai
  • springboot反射自动注入bean

    一 Java通过反射获取对象 执行方法 import java lang reflect Method public class Main public static void main String args throws Excepti
  • 树莓派3B开热点并自动启动

    lz最近项目需要 研究了一下树莓派开热点 试了一下几种方法 发现这一种是最简单 也是比较稳定的一种 现介绍如下 用putty或者vnc对树莓派进行操作 如下图示 putty登录界面 VNC登录界面 创建WiFi热点使用的GitHub上一个开
  • 谷歌云:全面推出 AlloyDB for PostgreSQL 与数据库迁移服务

    本文由Cloud Ace 整理发布 Cloud Ace 是谷歌云全球战略合作伙伴 拥有 300 多名工程师 也是谷歌最高级别合作伙伴 多次获得 Google Cloud 合作伙伴奖 作为谷歌托管服务商 我们提供谷歌云 谷歌地图 谷歌办公套件
  • js数组对象 模糊查找 指定 匹配字段内容

    以下内容仅供参考
  • 时序预测

    时序预测 MATLAB实现NGO BiLSTM北方苍鹰算法优化双向长短期记忆网络时间序列预测 目录 时序预测 MATLAB实现NGO BiLSTM北方苍鹰算法优化双向长短期记忆网络时间序列预测 预测效果 基本介绍 程序设计 参考资料 预测效
  • 抽象方法和抽象类

    目录 一 抽象方法和抽象类 1 区分普通方法和抽象方法 2 区分普通类和抽象类 3 定义一个抽象类 4 使用抽象类描述抽象的事物 5 抽象类和抽象方法的优势 6 抽象类的局限性 一 抽象方法和抽象类 1 区分普通方法和抽象方法 1 在Jav