JavaSE 面向对象程序设计进阶 抽象类和接口 2024年详解

news2025/1/10 23:25:05

目录

抽象类

抽象方法

抽象类和抽象方法的注意事项

​编辑

接口

如何定义接口

注意

代码实现

​编辑

接口中的成员特点

接口和类之间的关系

1.类与类的关系

2.类与接口的关系

3.接口与接口的关系

​编辑

拓展

接口中的默认方法

接口中的静态方法

​编辑

接口中的私有方法

接口的应用

个人号推广

博客主页

Web后端开发

Web前端开发

数据库开发

项目实战

算法与数据结构

计算机基础

回忆录


抽象类

继承:子类直接访问父类中的非私有成员

类的成员分为成员属性,成员方法

方法重写的弊端 别人忘了重写 故意不重写

所以要用抽象类

抽象方法 子类必须强制书写 不然就会报错

抽象方法

将共性的行为(方法)抽取到父类后,由于每一个子类执行的内容是不同的,所以在父类中不能确定具体的方法体,该方法就可以定义为抽象方法

抽象类:如果一个类中存在抽象方法,那么该类就必须声明为抽象类

public abstract class person{
    public abstract void work();
}

抽象类和抽象方法的注意事项

1.抽象类不能实例化 创建对象

2.抽象类中不一定有抽象方法,可以有普通发法,有抽象方法的类一定是抽象类

3.可以有构造方法

4.抽象类的子类

要么重写抽象类中的所有抽象方法

要么是抽象类

子类继承抽象类,必须要重新写父类里所有抽象方法

接口

接口是一种规则

对行为的抽象

接口侧重于行为

抽象类侧重于事物

如何定义接口

关键字interface 定义接口

接口不能实例化,不能创建对象

关键字implements 表示类与接口之间的实现关系

public interface 接口名{}
public class 类名 implements 接口名{}

接口的子类 实现类

1.要么重写接口中所有的抽象方法

2.要么是抽象类

注意

1:类与接口的实现关系,可以单实现,也可以多少多实现

public class 类名 implements 接口1,接口2{}

2.实现类还可以在继承一个类的同时实现多个接口

public class 类名 extends 父类 implements 接口名1,接口名2{}

代码实现

创建接口

先写父类 再写接口 再写子类

接口中的成员特点

1.成员变量

只能是常量

默认修饰符 public

2.构造方法

没有 接口不能创建对象 接口没有构造方法

3.成员方法

jdk7之前

只能定义抽象方法

接口和类之间的关系

1.类与类的关系

继承关系,只能单继承,不能多继承,但可以多层继承

2.类与接口的关系

实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时实现多个接口

重写方法时会将所有接口里的重名方法全覆盖

3.接口与接口的关系

可以单继承,也可以多继承

如图 接口1和接口2继承于接口3

创建一个类链上接口3后要将接口1,接口2,接口3中的方法全部重写

拓展

大佬写接口 小弟来用

jdk7 以前 只要接口变化 添加了新的方法 实现类必须同时改变

jdk7后优化了这个问题,实现了接口升级

方法里存在有方法体的方法

接口中的默认方法

默认方法不是抽象方法,所有不强制被重写

默认方法可重写可不重写

接口中的静态方法

静态方法不需要重写

不能重写

如何调用

接口中的私有方法

普通的私有方法 静态的私有方法

普通的私有方法 给默认方法服务的

静态的私有方法 给静态方法服务的

私有方法解决默认方法抽取方法问题重复代码抽取出来,又不想由外界提供

接口的应用

1.想让某个javabean实现对应的行为,就使用哪个接口

接口是各种各样行为的规则,是行为的抽象,想让哪个类拥有一个行为,就让类实现对应的接口就行了

2.方法的形参写成接口 则可以传递接口所有实现类对象

这个叫接口多态

3.适配器设计模式

中间站 适配器 让中间类对接口里所有方法空实现

然后新建一个类再继承中间的适配器

当一个接口中抽象方法过多,我们只要使用其中一部分的时候,就可以用适配器设计模式

书写步骤

个人号推广

博客主页

多多!-CSDN博客

Web后端开发

https://blog.csdn.net/qq_30500575/category_12624592.html?spm=1001.2014.3001.5482

Web前端开发

https://blog.csdn.net/qq_30500575/category_12642989.html?spm=1001.2014.3001.5482

数据库开发

https://blog.csdn.net/qq_30500575/category_12651993.html?spm=1001.2014.3001.5482

项目实战

https://blog.csdn.net/qq_30500575/category_12699801.html?spm=1001.2014.3001.5482

算法与数据结构

https://blog.csdn.net/qq_30500575/category_12630954.html?spm=1001.2014.3001.5482

计算机基础

https://blog.csdn.net/qq_30500575/category_12701605.html?spm=1001.2014.3001.5482

回忆录

https://blog.csdn.net/qq_30500575/category_12620276.html?spm=1001.2014.3001.5482

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1846005.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

全新升级微信分销商城小程序源码系统 前后端分离 带完整的安装代码包以及搭建部署教程

系统概述 微信分销商城小程序源码系统是基于先进的技术和理念开发而成的。它旨在为企业和商家打造一个功能齐全、用户体验良好的分销平台,帮助他们更好地管理商品、销售渠道和用户关系,实现业务的快速增长和持续发展。 代码示例 系统特色功能一览 1.多…

TikTok API接口——获取TikTok用户QRcode二维码

一、引言 在数字化时代,QRcode二维码已经成为连接线上线下的重要桥梁。在社交媒体领域,TikTok作为短视频领域的佼佼者,用户量庞大且活跃度高。为了满足用户之间更便捷的互动需求,我们特别开发了一款针对TikTok平台的接口&#xf…

C++并发之协程实例(二)(计算斐波那契序列)

目录 1 协程2 实例-计算斐波那契序列2.1 斐波那契序列2.2 代码 3 运行 1 协程 协程(Coroutines)是一个可以挂起执行以便稍后恢复的函数。协程是无堆栈的:它们通过返回到调用方来暂停执行,并且恢复执行所需的数据与堆栈分开存储。这允许异步执行的顺序代码…

[图解]企业应用架构模式2024新译本讲解15-行数据入口

1 00:00:01,060 --> 00:00:02,770 数据算完了 2 00:00:03,070 --> 00:00:07,720 接下来就是我们这一节的主要内容了 3 00:00:08,500 --> 00:00:13,630 应用服务调用第三方的,Email 4 00:00:13,640 --> 00:00:18,280 包括集成应用的接口来发Email 5 …

【C++】————类和对象(上)

作者主页: 作者主页 本篇博客专栏:C 创作时间 :2024年6月21日 一、类与对象的初步认识 1、类其实就是对对象的抽象,而对象就是对类的具体实例 类不占用内存,而对象占用内存。 2、面向对象与面向过程 C语言是面…

技术探索:如何利用合合信息智能文档处理提升审查效率

官.网地址:合合TextIn - 合合信息旗下OCR云服务产品 智能文档处理技术是一系列技术的集合,旨在自动化地捕获、理解、处理和分析文档内容,以支持企业的数字化转型和提升文档处理效率。 智能文档处理技术的核心包括光学字符识别(O…

【码银送书第二十一期】《大数据智能风控:模型、平台与业务实践》

人行印发的《金融科技(FinTech)发展规划(2022一2025年)》明确指出金融科技成为防范化解金融风险的利器,运用大数据、人工智能等技术建立金融风控模型,有效甄别高风险交易,智能感知异常交易&…

光电数鸡算法《java》

一:需求 题目:一条流水线有工位D1,D2,D3…D20,总共20个工位。 每个工位都装有一个光电计数器,每个工位都为本工位的计数减去前一个工位(第一个有数值的工位除外,不计算。) 计算规则:比如D1,D2都…

Android CTS环境搭建

CTS即Compatibility Test Suite意为兼容性测试,是Google推出的Android平台兼容性测试机制。其目的是尽早发现不兼容性,并确保软件在整个开发过程中保持兼容性。只有通过CTS认证的设备才能合法的安装并使用Google market等Google应用。 搭建CTS测试环境需…

计算机网络:应用层 - 域名系统 DNS

计算机网络:应用层 - 域名系统 DNS 域名结构域名服务器域名解析迭代查询递归查询 互联网中的每台设备都有一个唯一的IP地址,但这些地址通常是复杂的数字组合,例如 172.217.160.142,难以记忆和识别。域名系统将这些复杂的IP地址与易…

通过腾讯云TDSQL TCPTCE(MySQL版)认证考试秘籍宝典

腾讯云TDSQL(MySQL版)交付运维高级工程师TCCP证书展示 腾讯云TDSQL(MySQL版)交付运维专家TCCE考试成绩、证书展示 认证类型与级别 TCCA:入门级(初级) TCCP:高级(中级) TCCE:专家级(高级) 考试形式 考试是在线考试,考生需要在腾讯云大学官网上完成。 腾讯云TDSQ…

【会议征稿】2024年应用计算智能、信息学与大数据国际会议(ACIIBD 2024,7月26-28)

2024年应用计算智能、信息学与大数据国际学术会议(ACIIBD 2024)将于2024年7月26-28日在中国广州举办。会议将聚焦于计算智能及其应用、信息、大数据等相关的研究领域, 广泛邀请国内外知名专家学者,共同探讨相关学科领域的最新发展…

深入理解和实现Windows进程间通信(信号量)

常见的进程间通信方法 常见的进程间通信方法有: 管道(Pipe)消息队列共享内存信号量套接字 下面,我们将详细介绍信号量的原理以及具体实现。 什么是信号量? 信号量(Semaphore)是一个非常重要…

【数据库】数据库脚本编写规范(Word原件)

编写本文档的目的是保证在开发过程中产出高效、格式统一、易阅读、易维护的SQL代码。 1 编写目的 2 SQL书写规范 3 SQL编写原则 软件全套资料获取进主页或者本文末个人名片直接获取。

OPPO布局自动驾驶?基于语义地图的自动驾驶汽车单目定位

论文标题: Monocular Localization with Semantics Map for Autonomous Vehicles 论文作者: Jixiang Wan, Xudong Zhang, Shuzhou Dong, Yuwei Zhang, Yuchen Yang, Ruoxi Wu, Ye Jiang, Jijunnan Li, Jinquan Lin, Ming Yang 作者单位:O…

CoAP协议详解:物联网通信的轻量级解决方案

什么是CoAP协议 CoAP(Constrained Application Protocol)是一种专门为物联网(IoT)设计的应用层协议。它的目标是为受限设备和网络提供轻量级的通信解决方案。CoAP协议基于REST(Representational State Transfer&#x…

云手机群控功能讲解

接触云手机之前,很多企业或者个人卖家都对群控有浓厚的兴趣,云手机群控具体是什么呢?云手机群控,顾名思义,是指能够同时对多台云手机进行集中控制和管理的功能。打破了传统单台手机操作的限制,实现了规模化…

数据资产与企业绩效的紧密关联:深入解析数据资产如何直接影响企业绩效,并探讨如何通过策略性利用数据,优化运营,进而提升企业的整体业绩与竞争力

目录 一、引言 二、数据资产与企业绩效的紧密关联 (一)数据资产的定义与价值 (二)数据资产对企业绩效的影响 三、策略性利用数据资产优化运营 (一)建立数据驱动的企业文化 (二&#xff0…

ACM顶会SIGGRAPH 2024最佳论文出炉:英伟达两篇最佳论文,三支国内团队获荣誉提名,浙大周昆获时间检验奖

文章目录 1. 最佳论文最佳论文 1最佳论文 2最佳论文 3最佳论文 4最佳论文 5 2. 最佳论文荣誉提名最佳论文荣誉提名 1最佳论文荣誉提名 2最佳论文荣誉提名 3最佳论文荣誉提名 4最佳论文荣誉提名 5最佳论文荣誉提名 6最佳论文荣誉提名 7最佳论文荣誉提名 8最佳论文荣誉提名 9最佳…

【VS Code 插件】SQLite 可视化插件

VScode 插件分享篇之sqlite可视化工具 项目经常用到SQLite这个轻量型数据库,于是乎,就想着找一个可视化工具,但是我有时候只是想方便预览数据 表,又不想安装额外的程序,那么这款插件很适合你。 用习惯VS Code的小伙伴…