[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作为控制系统,同时能够连接上位机用于产量、温度、压力、电机运行数据的监控,以及工厂的大屏呈现需求。目前,客户主要是市场上的…

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

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

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

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

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

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

OpenWrt改网桥模式(AP模式)

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

k8s部署presto

(作者:陈玓玏) 一、前提条件 已部署k8s;已部署hadoop和hive,可参考以下链接: 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 …

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

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

AtCoder ABC352 A-D题解

比赛链接:ABC352 Problem A: 签到题。 #include <bits/stdc.h> using namespace std; int main(){int N,X,Y,Z;cin>>N>>X>>Y>>Z;if((X<Z && Z<Y) || (Y<Z && Z<X))cout<<"YES"<<endl;else…

数据采集与AI分析,亮数据+通义千问助力跨境电商前行

文章目录 前言工具介绍数据采集工具亮数据Web Scraper IDE亮点 AI数据分析工具 实战电商数据采集与AI分析电商平台选取数据采集完全托管数据集自定义数据集 AI分析 价格总结 前言 随着信息技术的飞速发展&#xff0c;数据采集与AI分析在跨境电商中扮演着越来越重要的角色。通过…

用ControlNet+Inpaint实现stable diffusion模特换衣

用ControlNetInpaint实现stable diffusion模特换衣 ControlNet 训练与架构详解ControlNet 的架构用于文本到图像扩散的 ControlNet训练过程Zero卷积层的作用解释 inpaintInpaint Anything 的重要性Inpaint Anything 的功能概述 在现代计算机视觉领域&#xff0c;稳定扩散&#…

微信小程序开发 tabbar组件常见问题

一、 tabbar不显示问题 问题 刚开始我在app.json中配置了下面的代码&#xff0c;但tabbar并没有显示。代码如下&#xff1a; "tabBar": {"custom": true,"color": "#7A7E83","selectedColor": "#3cc51f","…

【机器学习-08】 | Scikit-Learn工具包进阶指南:Scikit-Learn工具包之决策树算法实战分析

&#x1f3a9; 欢迎来到技术探索的奇幻世界&#x1f468;‍&#x1f4bb; &#x1f4dc; 个人主页&#xff1a;一伦明悦-CSDN博客 ✍&#x1f3fb; 作者简介&#xff1a; C软件开发、Python机器学习爱好者 &#x1f5e3;️ 互动与支持&#xff1a;&#x1f4ac;评论 &…

微信H5跳小程序 wx-open-launch-weapp ios显示且正常跳转,安卓不显示不报错解决方案

前提&#xff1a;在一切都正常(无报错&#xff0c;没有写法错误等)的情况下&#xff0c;出现这个问题: 去你的h5项目&#xff0c;用浏览器打开&#xff0c;在network随便找一个静态文件&#xff0c;在response响应标头中找找&#xff0c;是否有Content-Security-Policy这个头&…

服务高峰期gc,导致服务不可用

随着应用程序的复杂性和负载的不断增加&#xff0c;对JVM进行调优&#xff0c;也是保障系统稳定性的一个重要方向。 需要注意&#xff0c;调优并非首选方案&#xff0c;一般来说解决性能问题还是要从应用程序本身入手&#xff08;业务日志&#xff0c;慢请求等&#xff09;&am…

struct.unpack_from()学习笔记

struct.unpack_from(fmt,b_data,offset) 按照指定的格式fmt&#xff0c;从偏移位置offset&#xff0c;对b_data开始解包&#xff0c;返回数据格式是一个元组(v1,v2…) fmt可以有&#xff1a; _struct.py: The remaining chars indicate types of args and must match exactly;…

基于Vue的验证码实现

一、验证码核心实现 创建slide-verify.vue&#xff0c;代码如下&#xff1a; <template><divclass"slide-verify":style"{ width: w px }"id"slideVerify"onselectstart"return false;"><!-- 图片加载遮蔽罩 -->&…

java项目之图书管理系统源码(springboot+vue+mysql)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的图书管理系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 系统主要分为管理员角色和用…

【Redis7】Redis持久化机制之RDB

文章目录 1.RDB简介2.RDB配置触发设置3.RDB的优缺点4.如何检查修复RDB文件5.如何禁用RDB6.RDB参数优化7.总结 1.RDB简介 Redis持久化机制中的RDB&#xff08;Redis Database&#xff09;是一种将Redis在某个时间点的数据以快照形式保存到磁盘上的方法。 原理&#xff1a;RDB通…

Node.js版本管理与npm镜像源管理

一、nvm —— node的版本管理工具 1.安装 nvm Windows 使用 nvm-windows点击跳转下载网站。 按照图示操作步骤下一步即可&#xff0c;对于下载位置推荐不要C盘任意即可 2.查看可用的 Node.js 版本&#xff1a; nvm list available #显示所有可以下载的版本3.安装特定的…