接口及实现方法

2023-05-16

什么是接口

  • 接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合(接口中的所有的方法都是抽象方法),接口通常以interface来声明。
  • 接口是一个特殊的类,这个类中只能存值抽象方法,为了和普通的类去做区分,同时弥补java单继承的缺陷,把这个特殊的类叫接口,使用interface声明接口
  • 一个类通过实现接口的方式,从而来实现接口的抽象方法。
  • 接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。
  • 除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。
  • 接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。另外,在 Java 中,接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。

声明接口(interface)

  • 没有任何实现方法(在jdk1.8之前)的类似类的结构体

语法
访问权限  interface  接口名{
  //接口中只能编写抽象方法,1.8开始接口中可以普遍存在普通方法和静态方法
}  

实现接口(implements)

  • 创建接口,声明方法
  • 创建类,实现接口,实现接口中的方法
  • 使用实现后的方法执行具体的操作
  • 抽象类中的非抽象的方法可以选择继承      VS     接口中的方法必须全部被重写 ,并且全部是公有的public 方法

类名 implement 接口名,接口名,....{
}  

特征

  • 接口可以被类进行实现,一个类中可以实现多个接口
  • 接口中的属性public,static,final修饰的(静态常量)
  • 接口中没有构造方法,也不能声明任何构造方法,也没有静态方法(1.8才有,新增的)
  • 类可以继承接口,java类可以一次继承多个接口,用implements 接口1,接口2.
    • 必要要实现接口中的所有抽象方法,如果没有全部实现的话,这个类就必须要声明为抽象类
  • 接口可以多继承其他的接口,如果接口进行多继承,那么它的子类就必须将接口中的全部为实现方法进行实现(接口的父类接口中的未实现方法也必须实现)
    • 如果是接口继承接口的话也可以用extends,接口是多继承的,java类才是单继承
  • 接口不能实例化
  • 接口不能被final修饰

抽象类和接口的区别

  • 抽象类中可以存在非抽象的方法     VS     接口中的方法被默认的变成抽象方法,只要是定义了接口,接口中的方法 就全部变成了抽象类即使你不写 abstract 它也是抽象的方法
  • 实现抽象类的方法时, 如果方法是抽象的,子类必须重写抽象的方法. 如果方法不是抽象的, 子类可以选择继承 VS 实现了接口,就必须实现接口中的所有方法, 因为接口中的方法默认的全部都是抽象的方法 (可以说, 接口是抽象类的一种, 也可以说接口是抽象类的延伸)
  • 抽象类可以有私有的成员变量和成员法       VS       接口中的方法全都被默认的修饰为: public abstract 类型的方法
  • 一个类只能继承一个抽象类 VS 一个类可以实现多个接口 ,接口可以实现多继承 举例:interface display extends aa ,bb,cc ...等等 然后让类去实现 display的接口 就可以实现 display aa bb cc接口
  • 抽象类使用关键字abstract class修饰,接口使用关键字interface;
  • 抽象类使用关键字extends实现继承,接口使用implements来实现
  • 抽象类中可以包含抽象方法和普通方法,接口中只能有抽象方法(1.7);
  • 抽象类可以有构造方法,接口中不能有构造方法;
  • 抽象类可以有成员变量,接口中只能有常量;
  • 抽象类只能单继承,接口可以多继承;
  • 抽象类里面的方法可以是public,protect,private,接口的方法只能是public


在java中impliment是为了实现某个接口.
例如接口a:
interface a{
    public void a();
}


有b类为了实现a接口
class b impliment a{
    public void a(){
        system.out.println("b");
    }
}  


接口:  
interface Animal{
	public void run();
}


interface Flyer{
	public void fly();
}		
		      
interface Swimmer{
	public void swim();
}
		      
interface Robbit{
	public void Haha();
}


实现		
public class LaoXue implements Animal,Swimmer,Robbit{
    public void run(){	
			
    }
	public void swim(){


    }
	public void Haha(){


	}
}

  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

接口及实现方法 的相关文章

随机推荐

  • 英伟达Jatson nano无线网卡 摄像头安装及使用

    连接ufl连接器 拆卸散热器所在版两侧螺丝 按下模块儿两侧夹子 拧下中央螺丝 警告 xff01 xff01 xff01 xff01 x1f53a 这颗螺丝 xff0c 打了螺丝胶 xff0c 千万不要用电动螺丝刀 要找准合适的工具 轻轻取下
  • 3D打印机加装灯带。以创想三维ender系列某一型号为例。

    警告 3D打印机加装灯带必须确保该款的打印机支持加装 而且必须在客服官方售后允许范围内进行改装 必须熟练掌握电工知识 否则引起短路损坏无法保修 该文只是一个加装成功的案例 xff0c 不得以此作为任何参考 首先根据电压直流或交流选择完全匹配
  • USB转串口芯片CH340系列及CH340模块使用方法(CH340驱动,接线,串口下载详细介绍)

    USB 转串口芯片 CH340 我们为什么要用到CH340驱动呢 xff1f CH340驱动就是USB转串口的驱动的一种 xff0c 因为我们现在的电脑上 xff0c 已经不存在串口 xff0c 所以我们一般使用USB转串口芯片 xff0c
  • prusa2.6.0 树形支撑(有机支撑)Organic体验测试 3d打印及下载失败解决

    目前官网没有这个2 6版本 xff0c 只有2 5 2下载 xff0c 是没有树形支撑的 如果试用2 6版本 xff0c 需要从GitHub下载 地址为 xff1a https github com prusa3d PrusaSlicer
  • 无人机在户外无GPS环境下用什么导航方法问答

    无人机在户外无GPS环境下用什么导航方法 xff1f 无人机在户外无GPS环境下可以使用多种导航方法 xff0c 包括 xff1a 1 视觉导航 xff1a 利用摄像头检测地面特征实现导航 2 磁场感应导航 xff1a 利用永磁体和地球磁场
  • 网络中的图片传输

    前言 一张图片经过网络从主机 A 传输到主机 B xff0c 主机 B 在收到这张图片后将其保存在本地 xff0c 对应步骤为 xff1a 读 xff1a 主机 A 读取待传输的图片数据传 xff1a 主机 A 通过 Socket 将图片传
  • 一道有趣的C语言题:int *p=(int *)((int)a+1);

    偶然间看到这样一个c语言题目 xff1a 小端模式 int main void int a 5 61 1 2 3 4 5 int p 61 int int a 43 1 xff1b printf 34 X r n 34 p return 0
  • 一、FREERTOS学习之 freertos移植流程步骤

    目录 一 FREERTOS资源包下载 二 移植 1 资源包整理 三 工程添加 1 添加 2 编译路径添加 3 修改FreeRTOSConfig h 4 修改stm32f10x it c 5 注意 一 FREERTOS资源包下载 官网 xff
  • 三、FreeRTOS学习之 freertos的任务创建

    目录 一 任务创建 xff1a 1 静态创建 xff1a 2 动态创建 xff1a 3 任务句柄 4 例 xff1a 一 任务创建 xff1a 在freertos中 xff0c 提供了两种创建任务的方式 xff1a 静态创建 xff0c 动
  • 七、FreeRTOS学习之 软件定时器

    一 基本概念 在freertos中 xff0c 软件定时器的功能跟单片机中使用的定时器差不多 xff0c 通过设置一段时间 xff0c 等到时间到达 xff0c 定时器进入中断 xff0c 执行相应的功能函数 xff0c 被调用的函数叫做定
  • 软件iic 的编写与调试

    一 了解 1 硬件iic 其对应的芯片上有iic外设 xff0c iic的引脚是固定的 xff0c 硬件iic是直接配置内部的寄存器 xff0c 只要配置好寄存器 xff0c 外设就会产生标准的协议时序 xff0c 只需要直接调用控制函数
  • 运算符重载(),[]

    include lt iostream gt include lt cstring gt using namespace std class yunsuan private int a b c int len num char name 3
  • vector

    include lt iostream gt include lt vector gt include lt algorithm gt using namespace std 容器 xff1a vector 相当于一个数组 迭代器 xff1
  • STM32外设之TIM定时器使用及输出比较模式PWM生成,PWM频率和占空比计算,文末有固件库TIM驱动文件的函数讲解

    TIM 定时器是stm32单片机中的一个外设 xff0c STM32有8个定时器 xff0c 分别是2个高级定时器TIM1TIM8 xff0c 4个通用定时器TIM2 5 2个基本定时器TIM67 根据不同型号的单片机 xff0c 挂载的定
  • Java多线程之~~~~使用wait和notify实现生产者消费者模型

    在多线程开发中 xff0c 最经典的一个模型就是生产者消费者模型 xff0c 他们有一个缓冲区 xff0c 缓冲区有最大限制 xff0c 当缓冲区满 的时候 xff0c 生产者是不能将产品放入到缓冲区里面的 xff0c 当然 xff0c 当
  • 拷贝、移动构造

    include lt iostream gt using namespace std class temp private char a public temp char c char b a 61 new char 2 a 0 61 c
  • Dockerfile

    Dockerfile Dockerfile简介1 Dockerfile基本介绍2 Dockerfile构建过程3 Dockerfile指令用法 Dockerfile构建镜像1 Dockerfile使用CentOS构建apache镜像1 1相
  • MySQL数据库备份与恢复

    在项目的开发过程中数据库的备份是非常重要的 xff0c 为了防止数据库受到破坏 xff0c 造成不可估量的损失 xff0c 所以一定要进行数据库的备份 xff0c 并且需要掌握数据库恢复方法 xff0c 在发生数据库损坏的时候 xff0c
  • Linux设备驱动基础知识

    一 认识驱动 1 什么是驱动 不知道的情况下 xff0c 我们一般会去问度娘 xff0c 但是度娘的这个回答比较专业化 xff0c 对小白来说并不容易理解 xff0c 依旧不明白驱动到底是个啥 度娘 xff1a 驱动 xff0c 计算机软件
  • 接口及实现方法

    什么是接口 接口 xff08 英文 xff1a Interface xff09 xff0c 在JAVA编程语言中是一个抽象类型 xff0c 是抽象方法的集合 xff08 接口中的所有的方法都是抽象方法 xff09 xff0c 接口通常以in