[JAVASE] 类和对象(五) -- 抽象类和接口

目录

 

一. 抽象类

        1.1 抽象类的定义

        1.2 抽象类的实现

        1.3 抽象类的作用 

        1.4 抽象类注意事项 

二. 接口 

        2.1 接口的定义

         2.2 接口的实现

        2.3 接口的作用

        2.4 接口注意事项 

三. 总结 


 

一. 抽象类

        1.1 抽象类的定义

如果一个类中没有包含足够的信息来描绘一个具体的对象, 那么这个类就可以被定义为抽象类. (其实就是父类)

        1.2 抽象类的实现

使用 abstract 关键字 来修饰抽象类, 以及抽象方法.

1e9b3624d0d84903a5394850e9d5c4c9.png

        1.3 抽象类的作用 

a.

抽象类就是用来检查父类中的抽象方法有没有在子类中被重写.

17f1a9957d3c4e1e98e21a82c858fc0c.png

(很多语法的出现就是用来提前发现问题的)

b.

抽象类 就是为了被继承的.

c.

抽象方法 就是为了被重写的.

        1.4 抽象类的注意事项 

a. 

如果一个类是抽象类, 可以不必在抽象类中 实现 抽象方法.

但是,如果一个类中存在抽象方法, 那么, 这个类 必须被定义为抽象类.

b.

在抽象父类中实现了抽象方法, 那么在它的普通子类中必须重写抽象方法, 在它的抽象子类中不必重写抽象方法.

c. 

抽象类不能够被实例化(因为抽象类不能够描述一个具体的对象)

d18743536a2d423ea78550064dac9dac.png

d. 

抽象方法需要满足重写的要求.

(抽象方法不能被 static final private 修饰,

子类重写方法的访问权限 >= 父类重写方法的访问权限)

e.

abstract 与 final 是不能共存的.

(final 修饰的类是密封类, 不能够再被其他类继承.  abstract 修饰的抽象类就是用来被继承的.

final 修饰的方法是密封方法, 是不可变的, 不能够被重写. abstract 修饰的密封方法就是用来被重写的.)

23aad2c83488407ab1cd37b6970337bc.png

f.

在抽象类中可以实现 普通成员变量 和 普通成员方法 以及 构造方法(因为存在普通成员变量).

d045d90504a54ad498c7aa2d29f80422.png


二. 接口 

        2.1 接口的定义

接口是多个类的公共行为规范.

接口的含义是: ... 具有...的特性.

         2.2 接口的实现

a.

使用 interface 关键字来修饰接口.

5282e09afc514e4aad63231465d52083.png

b. 

使用 implements 来实现接口

50d5e60d6aaa4d089c093a3a816e7379.png

 

        2.3 接口的作用

解决了 JAVA 中不能够 多继承(一个子类继承多个父类) 的问题.

e9ccccbef9cf4d8d91a2a27f4fb19dd3.png

        2.4 接口的注意事项 

a.

接口中的属性 默认被 public static final 修饰.(属于类的静态常量) 

d973ccf933bf45cc821ad1e79b3b62fc.png

(以上5种方式定义的属性, 都是被public static final 修饰)

b.

接口中的成员方法 默认被 public abstract 修饰.

5697a078c87e476692104e640c5a5bdc.png

c.

接口中可以实现 非抽象方法(有具体实现的方法), 但是必须被 static 或者 default 修饰.

941edd198eba438cac1c6a78c7941d7d.png

d.

接口中不能够 有 构造方法.(因为接口中 的属性都是 静态常量, 根本就不需要调用构造方法来进行初始化)

a15918f009ba4b17b35df12c124aa21e.png

e.

接口不能够被实例化.

(因为在接口中不允许实现构造方法, 所以无法实例化对象

其次, 接口本质上也是抽象的, 不能够被实例化).

1e5a505099b84975b54dd198cc8cb93d.png

f.

接口之间可以进行合并.(使用 extends 关键字来实现)

b49e138919684d3d871c110849748cbe.png


三. 总结 

a. 抽象类就是用来 观察父类中的抽象方法 有没有 在子类中被重写.

b. 抽象类的注意事项是 重点.(需要经常回顾)

c. 接口 的含义是: ...具有...的特性.

d. 接口解决了 java 中不能够多继承的问题.

e. 接口的注意事项也是重点(需要经常回顾)

 

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

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

相关文章

远程PLC、工控设备异地调试,贝锐蒲公英异地组网方案简单高效

北京宇东宁科技有限公司专门提供非标机电设备,能够用于金属制品的加工制造。设备主要采用西门子的PLC作为控制系统,同时能够连接上位机用于产量、温度、压力、电机运行数据的监控,以及工厂的大屏呈现需求。目前,客户主要是市场上的…

代码随想录算法训练营第三十三天|1005.K次取反后最大化的数组和,134. 加油站

1005.K次取反后最大化的数组和 1.取反次数<负数个数 优先把绝对值较大的负数取反 2.取反个数>负数个数 先把所有负数都取反成正数&#xff0c;之后把所有次数都用来对绝对值最小的数字进行取反 134. 加油站 这里首先每一个站台都是有净收益的&#xff0c;净收益等于该…

百度陈之若:第一批大模型伙伴已经实现财富自由了

大模型继续在 2024 年的春天里疾驰而进。 2024 年 4 月 9 日&#xff0c;百度智能云在成都举行的首届 GENERATE 全球生态大会上&#xff0c;公布了过去一年大模型生态建设的最新“成绩单” 。 目前&#xff0c;已经有超过 8.5 万客户在使用千帆大模型平台&#xff0c;开发了超…

EI稳定检索--人文社科类会议(ICBAR 2024)

【ACM独立出版】第四届大数据、人工智能与风险管理国际学术会议 (ICBAR 2024) 2024 4th International Conference on Big Data, Artificial Intelligence and Risk Management 【高录用•快检索&#xff0c;ACM独立出版-稳定快速EI检索 | 往届均已完成EI, Scopus检索】 【见…

大屏幕适配方法之:transform:scale()

CSS3新增的属性transform主要用于设置元素的变形&#xff0c;比如旋转、倾斜、缩放等。我们今天要用到的正式它的缩放功能transform:scale() 取值 单一数值 单一的数值即指定了一个缩放系数&#xff0c;同时作用于 X 轴和 Y 轴让该元素进行缩放&#xff0c;相当于指定了单个值…

深入理解Java中的异步编程与CompletableFuture

在现代的软件开发中&#xff0c;异步编程已经成为处理并发和提升性能的重要手段之一。Java作为一门流行的编程语言&#xff0c;提供了多种异步编程的方式。其中&#xff0c;CompletableFuture是Java 8引入的一个强大的工具&#xff0c;用于简化异步编程并提高代码的可读性和可维…

Python快速提取局域网在线IP及对应MAC地址

在网络管理和安全监控中,了解局域网内的在线设备及其对应的IP和MAC地址是非常重要的。本文将介绍如何使用Python快速提取局域网内所有在线设备的IP地址及其对应的MAC地址。我们将使用Python的第三方库和一些简单的网络扫描技术,使这一过程变得高效且自动化。无论你是网络管理…

SAPUI5基础知识2 - 手动创建一个SAPUI5的项目

1. 前言 在本篇文章中&#xff0c;我们将手动一步一步建立出第一个SAPUI5的 ‘Hello World!’ 项目。 2. 步骤详解 2.1 在BAS中建立Dev Space 进入SAP Business Application Studio的Dev Space Manger&#xff0c;选择创建Dev Space。 勾选HTML5 Application Template插件…

[Linux] shell程序编写

一、shell是什么 Linux严格意义上说的是一个操作系统&#xff0c;我们称之为“核心&#xff08;kernel&#xff09;“ &#xff0c;但我们一般用户&#xff0c;不能直接使用kernel。而是通过kernel的“外壳”程序&#xff0c;也就是所谓的shell&#xff0c;来与kernel沟通。 …

数据读取及分隔方法

文章目录 读取数据1. 读取文本文件2.pandas库读取数据3.读取JSON文件 数据分隔方法1.split()2.re.split()3.splitlines() 读取数据 1. 读取文本文件 读取文本文件&#xff1a;可以使用内置的open()函数来打开文本文件&#xff0c;并使用read()或readlines()方法读取文件内容。…

Linux:网页的各种状态码及其解释

Linux&#xff1a;网页的状态码 定义&#xff1a;状态码由三位数值组成&#xff0c;第一位数值定义了响应的类别&#xff0c;且有五种可能取值 状态码含义详解1xx指示信息&#xff08;信息性状态码&#xff09;表示请求已接受&#xff0c;继续处理2xx成功表示请求已被成功接受…

overflow:scroll不生效解决

参考 问题 在给组织架构组件的外框设置overflow:scroll的时候不生效&#xff0c;没有显示滚动条 原因 这个组件里面实在是包裹太多层了&#xff0c;得找到离内容层最近的那层包裹层设置overflow才有效 解决 找到离内容层最近的那层包裹层设置overflow

OpenWrt改网桥模式(AP模式)

OpenWrt改网桥模式&#xff08;AP模式&#xff09; 点击“接口” 删掉所有 wan 接口 点击“设备”&#xff0c;配置“br-lan" 点击网桥接口&#xff0c;勾选所有接口 点击保存 添加新接口&#xff08;不添加的话路由器自身系统没网&#xff09; 返回 “网络” - “接…

k8s部署presto

&#xff08;作者&#xff1a;陈玓玏&#xff09; 一、前提条件 已部署k8s&#xff1b;已部署hadoop和hive&#xff0c;可参考以下链接&#xff1a; https://blog.csdn.net/weixin_39750084/article/details/136750613?spm1001.2014.3001.5502 https://blog.csdn.net/wei…

Linux-挂盘-分区-卸盘

Linux-挂盘-分区-卸盘 1. 添加硬盘 2. 查看硬盘 [rootlocalhost /]# lsblk # 查看我们新添加的磁盘 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 80G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 …

pdf使用pdfbox切割pdf文件MultipartFile

引入依赖&#xff1a; <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.25</version></dependency>测试代码&#xff1a; import io.choerodon.core.iam.ResourceLevel; impo…

百度智能云参与信通院多项边缘计算标准编制,「大模型时代下云边端协同 AI 发展研讨会」成功召开

1 中国信通院联合业界制定、发布多项标准化成果&#xff0c;推动产业发展 大模型开启了 AI 原生时代&#xff0c;云边端协同 AI 构建了「集中式大规模训练」、「边缘分布式协同推理」新范式&#xff0c;有效降低推理时延和成本&#xff0c;提升数据安全和隐私性&#xff0c;也…

微服务技术框架-注册中心-能解决的问题

在微服务架构中&#xff0c;注册中心是一个关键组件&#xff0c;它解决了许多微服务通信和管理中的问题。以下是注册中心能够解决的主要问题&#xff1a; 1. 动态服务发现 问题&#xff1a;微服务实例动态增加或减少&#xff0c;手动配置服务地址非常繁琐且容易出错。 解决方案…

python的Serial 串口缓存区数据处理

没头脑很久没有处理串口数据&#xff0c;今日测试一个测距传感模块&#xff0c;用简单的serial.read没十几秒就屏幕冻住了&#xff0c;不往下print了。后来反应过来是不停访问串口&#xff0c;导致串口数据缓存区溢出了。有一个比较保险的方式如下&#xff0c;简单而言是成块读…

【C++面试100问】第八十五问:有了const,C++11为什么还要引入constexpr

B站讲解视频 在大部分实际场景中&#xff0c;const 和 constexpr 是可以混用的&#xff1b;但是在创建数组用修饰的变量指定size的时候&#xff0c;只能用constexpr&#xff1b;总的来说&#xff0c;在 C 11 标准中&#xff0c;const 用于为修饰的变量添加“只读”属性&#xf…