---java 抽象类 和 接口---

抽象类

再面向对对象的语言中,所以的对象都是通过类来描述的,但如果这个类无法准确的描述对象的

话,那么就可以把这个类设置为抽象类。

实例

这里用到abstract修饰,表示这个类或方法是抽象方法

因为会重写motifs里的show方法,所以无论里面写什么都不会被执行,那么就把他写成抽象方法

然后再子类中重写她,可以说抽象类就是用来被继承的,而抽线方法就是用来被重写的

要注意的是,抽象类中可以有普通方法和成员变量,甚至类里面都可以没有抽象方法

但是如果里面有一个抽象方法,那么就必须要把这个类用abstra修饰

当之类继承了抽线父类之后,子类还必须要重写父类的抽象方法,若不想重写抽象方法,那么这个子类也是抽象类

但如果你不想要在这个类中重写这个方法,那可以也把这个类也设置成抽象类,只不过当别人要继承这个类,需要重写这个类和这个类的父类的所有抽象方法

抽象方法是用来被重写的,所以不能有final static  private修饰

且抽象类不能被实例化

要是用的话必须要实例化子类,然后通过向上转型来使用

抽象类作用

抽象了本身不能被实例化,只能通过实例化子类,然后向上转型重写父类的抽象方法才能使用

这样就多了一层编译器的校验,因为你不有些工作是不该父类去完成的,那么你把它写成抽象方法,这样就确保这是子类去完成的任务

接口

生活中常见的usb接口,当我们要传输数据时,可以使用usb插头插入usb接口中然后进行各种操作,而这个usb接口就相当于是一个规范,你要通过usb接口进行数据的传输,就必须要有usb接口,而如果你设备有usb插头,不管是什么设备,相机,电视,电脑还是什么的,都能插入usb插头进行操作,而java中的接口也是这样,接口是公共行为的规范,再大家实现是你只需要符合规范

(有usb插头)那么你就可以使用这个接口(usb接口)

语法

接口的创建

和类的写法一样,只不过类使用class去修饰,而接口用interface去修饰

接口中的成员的权限都是public,且成员变量默认是由public final修饰

成员方法默认是由public abstract修饰

若要再接口中存在由方法体的成员方法,那么就要用static 或者 final修饰

接口的使用

需要用类去实现该接口,因为接口中有抽象成员

two这个类必须重写所有接口都有的抽象类(这里我把其他的抽象类都注释了)

调用

对于接口中存在的有方法体的方法的使用,只有用default修饰的能直接调用,而static的就需要用default去间接调用

没有static修饰的Show_5方法的存在

接口可以理解为更加抽象的抽象类,抽象类中可以允许构造方法,和非抽象成员方法的存在

而接口中只能是抽象方法,且成员都有固定的修饰(成员变量为 public final

成员方法为 public abstract)相比于抽象类,接口的好处是一个类可以使用多个接口, 

这样再实际使用时灵活性就更高了,而这样设计程序有个好处就是再具体使用时看以忘记对类型,

只需要关注对象是否具有某个功能(也就是使用了这个功能对应的接口)

接口件也能继承,用extends关键字,之后再使用接口是需要把继承的接口的抽象类也要重写

下篇介绍几个实际接口

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

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

相关文章

【爬虫实战项目一】Python爬取豆瓣电影榜单数据

目录 一、环境准备 二、编写代码 2.1 分页分析 2.2 编码 一、环境准备 安装requests和lxml pip install requests pip install lxml 二、编写代码 2.1 分页分析 编写代码前我们先看看榜单的url 我们假如要爬取五页的数据,那么五个url分别是: htt…

Python基础教程(七):函数编程-从基础到进阶

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝&#x1f49…

再读高考作文题

新课标I卷:讨论了随着互联网和人工智能的普及,问题是否会变得越来越少,要求考生写一篇文章,表达自己对于这一现象的联想和思考。 从来就没有什么救世主 AI也不是​​​​​ 一直不会写作文,直到高中,才堪堪…

【环境搭建】5.阿里云ECS服务器 安装Nginx

在阿里云的 Alibaba Cloud Linux 3.2104 LTS 64位系统上安装 Nginx,您可以按照以下步骤进行。Alibaba Cloud Linux 基于 CentOS,因此大部分步骤与 CentOS 系统类似。 步骤 1:更新系统软件包 首先,更新系统软件包以确保所有软件包…

Java Web学习笔记30——打包部署

打包: 到资源管理器中再看下: 将这些文件压缩成一个zip文件,然后到nginx的html目录中执行unzip 解压即可。 部署: Nginx:Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代…

Leetcode 3177. Find the Maximum Length of a Good Subsequence II

Leetcode 3177. Find the Maximum Length of a Good Subsequence II 1. 解题思路2. 代码实现 题目链接:3177. Find the Maximum Length of a Good Subsequence II 1. 解题思路 这一题我一开始的思路是直接使用暴力的动态规划的方式进行实现,结果遇到了…

使用JMeter软件压测接口配置说明

1、下载完该软件https://blog.csdn.net/wust_lh/article/details/86095924 2.点击bin文件中jmeter.bat脚本https://blog.csdn.net/wust_lh/article/details/86095924 3.官网地址https://jmeter.apache.org/download_jmeter.cgi 通过 【Options】->【Choose Language】变更为…

双列集合底层源码

tips: 竖着的箭头:重写 横着的箭头:继承

语音合成

语音合成 简介 语音合成技术的本质是将文本信息转化成语音信息,如果我们要将这句文本信息变成语音信息,首先需要在语音合成数据库里面挑选出这句文本信息所包含的元素,挑选完元素之后将这些元素按照一定的顺序组合排列,最后再输出…

力扣992.K个不同整数的子数组

力扣992.K个不同整数的子数组 atmostK()函数求最多K个不同字符的子串数量 则本题 恰好K个 可以转化成 最多K个 – 最多K–1个 class Solution {public:int atMostK(vector<int> nums,int k){int n nums.size();unordered_map<int,int> cnt;int res0;for(int i0…

张大哥笔记:经济下行,这5大行业反而越来越好

现在人们由于生活压力大&#xff0c;于是就干脆降低自己的欲望&#xff0c;只要不是必需品就不买了&#xff0c;自然而然消费也就降低了&#xff0c;消费降级未必是不好的现象&#xff01; 人的生物本能是趋利避害&#xff0c;追求更好的生存和发展空间&#xff0c;回避对自己有…

在线渲染3d怎么用?3d快速渲染步骤设置

在线渲染3D模型是一种高效的技术&#xff0c;它允许艺术家和设计师通过互联网访问远程服务器的强大计算能力&#xff0c;从而加速渲染过程。无论是复杂的场景还是高质量的视觉效果&#xff0c;在线渲染服务都能帮助您节省宝贵的时间。 在线渲染3D一般选择的是&#xff1a;云渲染…

生成式人工智能 - 本地windows 11 + PyCharm运行stable diffusion流程简述

一、环境说明 硬件:本地电脑windows11、32.0 GB内存、2060的6G的卡。 软件:本地有一个python环境,主要是torch 2.2.2+cu118 二、准备工作 1、下载模型 https://huggingface.co/CompVishttps://huggingface.co/CompVis 进入上面的网址,我这里下载的是这个里面的 …

Laravel 获取富文本中的所有图片

Laravel 获取富文本的纯文本内容-CSDN博客 Laravel 富文本内容里面的图片添加前缀URL-CSDN博客 Laravel 富文本图片的style样式删除-CSDN博客. preg_match_all(/<img[^>]src"([^">])"/, $data->analysis, $matches); $images $matches[1]; retu…

雷电模拟器中控实现,直通源码

目录 前言 开发 需求 初始环境 UI搭建 功能实现 前言 本篇为易语言雷电模拟器中控项目实现操作&#xff0c;一般用于&#xff1a;脚本开发多线程模拟操作等起始模板框架&#xff0c;使用易语言原因为其前后端一体化&#xff0c;对于脚本开发而言更为方便。 开发 需求 以…

C语言详解(联合和枚举)

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f4a5;个人主页&#xff1a;奋斗的小羊 &#x1f4a5;所属专栏&#xff1a;C语言 &#x1f680;本系列文章为个人学习笔记&#xff0c;在这里撰写…

C++ 标准库string

常用函数 函数名说明at 、[]获取单个字符append追加字符串insert插入字符串length、size字符长度empty返回布尔值&#xff0c;判断是否字符串为空capacity字符串容量reserve预分配内存&#xff0c;至少保证能容纳n个字符而不必重新分配find字符串查找replace字符串替换resize改…

论文阅读KAN: Kolmogorov–Arnold Networks

学习了最近大热的KAN网络 论文地址&#xff1a;https://arxiv.org/pdf/2404.19756 按我个人读论文的习惯总结了如下几点&#xff1a; 1&#xff0c;背景&#xff1a; 1&#xff09;灵感来源&#xff1a;于Kolmogorov-Arnold表示定理&#xff0c;也就是多变量连续函数可以表…

【html】网页设计语言制作竟然是文科?

网页设计与制作可能偏文科&#xff0c;并认为它相对于其他编程语言来说更容易理解&#xff0c;这是一个很有意思的观点。实际上&#xff0c;HTML&#xff08;超文本标记语言&#xff09;作为网页设计与制作的基础&#xff0c;确实具有一些特点&#xff0c;使其在某种程度上更易…

【JavaScript脚本宇宙】创造声音的魔法:深入了解Web音频处理库

聆听创意可能性&#xff1a;解锁Web音频库的神奇功能 前言 在Web开发中&#xff0c;处理音频是一个重要且常见的需求。许多JavaScript库和框架旨在简化音频处理和交互式音乐的创建过程。本文将探讨几个流行的Web音频库&#xff0c;介绍它们的概述、主要特性、使用示例以及适用…