JAVA入门级教学之(接口)

目录

JAVA入门级教学之(接口)

接口也是一种引用类型,可以等同看做类

1.如何定义接口,语法:

2.接口中只能出现:

3.接口其实是一个特殊的抽象类,特殊在接口是完全抽象的 

4.接口中没有构造方法,无法被实例化

5.接口和接口之间可以多继承

6.一个类可以实现多个接口【这里的"实现"可以等同看做"继承"】

7.一个非抽象的类实现接口,需要将接口中所有的方法"实现/覆盖/重写".

8.接口的作用:例如厨师、顾客和菜单之间的关系,菜单相当于接口   可以使项目分层,所有层都面向接口开发,开发效率提高了

9.接口使代码和代码之间的耦合度降低,就像内存条和主板的关系,变得"可拔插"

10.接口和抽象类都能完成某个功能,优先选择接口,因为接口可以多实现,多继承

11.并且一个类除了实现接口之外,还可以去继承其它类【保留了类的继承】

12.接口中的所有元素都是public修饰的


 

 

 

 

 

JAVA入门级教学之(接口)



接口也是一种引用类型,可以等同看做类

编译后也是一个class字节码文件

 


1.如何定义接口,语法:


  [修饰符] interface 接口名{}

 


2.接口中只能出现:

常量

抽象方法
 


3.接口其实是一个特殊的抽象类,特殊在接口是完全抽象的
 

接口是完全抽象的,抽象类是半抽象

反正接口就是个抽象的,里所以当里面的东西都需要是抽象的

因此public abstract 修饰符可以省略

public abstract 本来应该是写在抽象类中用来修饰抽象方法的,但是每条都要写就是冗余的东西,那么冗余的东西我们可以将其省略不写

同理可得

public static final 用来修饰抽象常量的时候也可以省略(因此我们在看到类似double pi=3.1415926的时候不要误会成变量)

 


4.接口中没有构造方法,无法被实例化


5.接口和接口之间可以多继承

接口支持多继承,一个接口可以继承多个接口(这就是所谓的多继承)

接口和接口之间支持多继承,一个类可以同时实现多个接口(接口其实可以看做是一种继承)

这种机制弥补了java中的哪个缺陷?

java中类和类只支持单继承,实际上单继承是为了简单而出现的,现实世界中存在多继承(就像笔记本电脑有很多个接口可以插拔),java中的接口弥补了单继承带来的缺陷


6.一个类可以实现多个接口【这里的"实现"可以等同看做"继承"】


7.一个非抽象的类实现接口,需要将接口中所有的方法"实现/覆盖/重写".


8.接口的作用:例如厨师、顾客和菜单之间的关系,菜单相当于接口
   可以使项目分层,所有层都面向接口开发,开发效率提高了


9.接口使代码和代码之间的耦合度降低,就像内存条和主板的关系,变得"可拔插"


10.接口和抽象类都能完成某个功能,优先选择接口,因为接口可以多实现,多继承


11.并且一个类除了实现接口之外,还可以去继承其它类【保留了类的继承】

 

12.接口中的所有元素都是public修饰的

 

 

当一个非抽象的类实现接口的话,必须将接口中的所有抽象方法都要实现(覆盖、重写)
 

 

public interface A {//常量(必须用public static final修饰)public static final String SUCCESS="success";public static final double PI=3.14;//但是public static final 是可以省略的byte MAX_VALUE=17;//也是一个常量//抽象方法(接口中所有的抽象方法都是public abstract)public abstract void m1();//不可以加{}体//public abstract是可以省略的void m2();}interface B{void m1();
}
interface C{void m2();
}
interface D{void m4();
}//implements是实现的意思,是一个关键字
//implements和extends意义相同
//class Myclass implements B,C{
//    public void m1(){}
//}


 

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

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

相关文章

java 线程状态_浅析Java中的线程状态

一、线程的5种状态众所周知,Java的线程状态有5种,分别对应上图中五种不同颜色,下面对这5种状态及状态间的转化做相应的解释: 1. 初始化状态:新建一个线程对象 2. 可运行状态:其他线程调用了该线程对象的sta…

Linux7添加syslog,请教linux下安装syslog的方法.是安装,不是配置

、安装JDK从sun网站上直接下载JDK:http://java.sun.com/j2se/1.4.2/download.html 提供了两个下载:1、RPM in self-extracting file (j2sdk-1_4_2_04-linux-i586.bin, 32.77 MB) 这个是自解压的文件,在linux上安装如下:# chmod ux…

如何在jieba分词中加自定义词典_Pyspark Word2Vec + jieba 训练词向量流程

摘要:用商品描述为语料库训练商品词向量为例,分享一下用pyspark自带word2vecjieba分词训练词向量的流程.工具:python,pyspark,jieba,pandas,numpy数据格式:自定义词典,语料库均为pyspark dataframe,停用辞典不大,直接使用txt.1 create spark我的pyspark参数设置如下:def create…

linux底行模式显示信息,14天linux命令加强

linux命令加强linux命令加强.jpg复习cd./ 当前目录../ 上级目录/ 代表根目录 or 代表目录和文件之间的分隔符 ..pwd 查看当前路径LS 查看当前目录下的文件ls ./a/ 查看目标路径下的文件tab 自动补全grep 文件外部根据关键字搜索文件内容 grep -n 关键字 *(文件名)more 以分页的…

字节和位 B和b的区别

“B”不是最小的单位,“B”是Byte的意思,一个Byte等于8个bit(位),bit是最小的单位。 就好像你用宽带上网,1M、2M、10M、100M都是用bit来作为单位的,实际上以上的速度换算到B是都要除上8。 bit一…

AndroidManifest.xml详解

我们在进行APP开发的时候都会遇到一个文件:AndroidManifest.xml。从刚开始进行Android开发,到现在已经过去了几个月,还是对这个文件一知半解,只知道它是配置用的。但是这文件里的东西具体有什么用,该怎么用一直都没有理…

a标签传值到另一个页面_vue-router页面传值及接收值

前端写页面&#xff0c;我们经常需要从A页面传值给B页面&#xff0c;比如下面的场景点击“充值中”跳转到下一个页面&#xff0c;使tabbar中的页面与其对应需要上个页面传值下面来实现下&#xff1a;A页面——My.vue在去“order”页面的方法中通过params传值current1<B页面—…

本机ping不通虚拟机linux,Windows本地Linux虚拟机ping不通的解决办法

安装linux操作系统安装双操作系统; 1 0. 介绍: 1 1 实验环境: 2 2. 实验准备: 2 3.开始安装: 2 1 制作U盘启动工具: 2 2.安装LinuxOS. 3 2.1在windowOS中划分60G空间 ...VS2008编译bat工程文件为AirCode,批处理文件为bulit.bat(与*.sln文件在同级目录). 以下是批处理的代码: ec…

如何实现文件互拖-VMware Tools (ubuntu系统)安装详细过程与使用

VMware Tools &#xff08;ubuntu系统&#xff09;安装详细过程与使用 1、打开虚拟机VMware Workstation&#xff0c;启动Ubuntu系统&#xff0c;菜单栏 - 虚拟机 - 安装VMware Tools&#xff0c;不启动Ubuntu系统是无法点击“安装VMware Tools”选项的&#xff0c;如下图&…

c++ 中文乱码_Visual Studio Code 中 CodeRunner 插件的输出窗口中文乱码

原来我一直用 Pycharm 写代码&#xff0c;Pycharm 写代码虽然很方便&#xff0c;但是Pycharm 有点重&#xff0c;我转到了Vscode了&#xff0c;真香。在 Visual Studio Code 中安装 CodeRunner 插件后&#xff0c;直接运行 Python 代码的时候&#xff0c;输出窗口中的中文出现了…

linux 下 java md5值,MD5值的简介和查看

MD5即Message-Digest Algorithm 5(信息-摘要算法第5版)&#xff0c;用于确保信息传输完整一致。每个文件都可以用MD5验证程序算出一个固定的MD5码来。MD5在论坛上、软件发布时经常用&#xff0c;是为了保证文件的正确性&#xff0c;防止一些人盗用程序&#xff0c;加些木马或者…

解决为什么导入了tomcat进入myeclipse却在server中找不到

有时候在servers中找不到刚刚在preferences搜索框中&#xff0c;输入tomcat等等等一系列的操作后却还是找不到在哪里 其实需要在servers窗口中右键new一个新的tomcat出来&#xff0c;这时候再在里面选择刚刚新建的tomcat即可

三菱modbusRTU通讯实例_实例 | 三菱PLC接线图干货,FX5U模块硬件

点击箭头处“工业之家”&#xff0c;选择“关注公众号”&#xff01;三菱PLC接线图干货此次主要描述的是关于三菱FX5U 模块硬件的接线实例&#xff0c;主要有以下几个方面&#xff1a;电源AC、DC接线、输入输出接线、模拟量接线。不同原理不同的接线方式&#xff0c;现在来给大…

linux共享文件系统sy,Linux使用Samba实现文件共享

Samba服务是现在Linux系统与Windows系统之间共享文件的最佳选择。[rootstudy ~]# yum install samba -y  #安装samba服务[rootstudy ~]# cat -n /etc/samba/smb.conf  #查看samba主配置文件Samba服务程序中的参数以及作用[global]参数作用workgroup MYGROUP#工作组名称ser…

recycleviewitem 列表加载动画_用vue实现一个虚拟列表

上次分享了超长列表分片加载的方式&#xff0c;这种方式现在一般不会使用&#xff0c;因为dom会变的无比庞大&#xff0c;页面会很卡&#xff0c;今天分享用vue实现一个虚拟列表的简易实现&#xff0c;本来是想用原生实现一个&#xff0c;后来觉得直接使用computed&#xff0c;…

解决为什么JDK要带着JRE一起下载

相信在安装的过程中会遇到这么一个疑问&#xff0c;明明我安装的的是JDK&#xff0c;为什么下载完成后路径里面多了一个jre呢&#xff1f; 带着这个疑问&#xff0c;我们探究一下JDK和JRE的区别 JDK&#xff1a;它是Java开发运行环境&#xff0c;在程序员的电脑上当然要安装J…

linux 安装jdk gz文件,Linux 安装jdk gz 安装方式

Linux安装JDK步骤1、先从网上下载jdk(jdk-7u1-linux-i586.rpm)&#xff0c;下载地址:http://www.Oracle.com/technetwork/Java/javase/downloads/jdk-7u1-download-513651.html&#xff0c;下载后放在/home目录中&#xff0c;当然其它地方也行。2、进入安装目录#cd /home#cp jd…

多元相关性分析_研究 | 精神分裂症症状与超氧化物歧化酶相关性的性别差异

精神分裂症是一种精神病综合征&#xff0c;主要症状包括阳性症状(如幻觉、妄想以及言语混乱)&#xff0c;阴性症状(如积极性降低、表达能力下降)&#xff0c;认知缺陷(如执行功能、记忆能力和心理处理速度受损)。氧化应激过度、抗氧化防御系统失调被认为是精神分裂症的重要危险…

安装Android studio打不开,提示the environment variable HAVA_HOME does not point to a val

遇到问题先仔细看错误提示&#xff0c;这里的意思有提到JAVA_HOME&#xff0c;因此需要我们打开一下系统的环境变量 1.java_home里面只有一个值&#xff0c;但在后面加了分号&#xff1a; 运行Java程序的时候不会报错。但是Android studio会认为不是一个正确的地址。 2.盘符问…

linux system更好方法,Linux将程序添加到服务的方法(通用【但最好还是用systemd】)...

一&#xff1a;咱们通过这篇文章来演示怎么将某个程序作为服务(就类似Windows服务可以开机自动启动)&#xff0c;这里以tomcat为例&#xff0c;已经亲测过&#xff1b;二&#xff1a;步骤(最好用root用户来做这种事情&#xff0c;切换root用户记得su - root)1)在/etc/rc.d/init…