JAVA接口类-interface

Java之接口详解【一篇搞定】 接口是对Java单继承的补充。Java只支持单继承(亲爹唯一),如果在开发过程中想额外增强类的功能,可以借助接口实现(可以拜师,拜多个师傅也可以)。 阅读详情

目录

引言

一,接口类的语法结构和定义

二,接口的特点

三,接口实现类implements

四,接口类使用实例


引言

        Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。为了克服Java单继承的缺点,Java使用了接口,一个类可以实现多个接口。

一,接口类的语法结构和定义

[修饰符列表] interface 接口名{

        java语句

}

接口声明使用interface关键字 interface Api{}

java 1.7 之前的接口规则:接口 = 常量 + 抽象方法

java 1.8 接口新定义规则:接口 = 常量(多个) + 抽象方法(多个) + default实现方法(多个) + static实现方法(多个)

java 1.8 接口函数式接口规则: 接口 = 常量 + default实现方法 + static实现方法 + 抽象方法(有且 只有一个抽象方法)

二,接口的特点

  • 用 interface 来定义。
  • 接口也是一种引用数据类型
  • 接口中的所有成员变量都默认是由public static final修饰的。
  • 接口中的所有方法都默认是由public abstract修饰的。
  • 接口没有构造方法。构造方法用于创建对象
  • 实现接口的类中必须提供接口中所有方法的具体实现内容。
  • 多个无关的类可以实现同一个接口
  • 一个类可以实现多个无关的接口
  • 与继承关系类似,接口与实现类之间存在多态性
  • 接口也可以继承另一个接口,使用extends关键字。
  • 实现接口的类中必须提供接口中所有方法的具体实现内容。
  • 多个无关的类可以实现同一个接口
  • 一个类可以实现多个无关的接口
  • 与继承关系类似,接口与实现类之间存在多态性

三,接口实现类implements

        为了克服Java单继承的缺点,Java使用了接口,一个类可以实现多个接口。在java语言中,接口由类通过关键字implements来实现,以便使用接口中的方法。实现多个接口用逗号隔开。

  • 实现类是针对接口来讲的。
  • 实现类就是来实现接口中约定的内容。(通过重写方法)
  • 实现通过关键字implements来实现的。

示例如下:

编写一个接口:

public interface Animal {
    public String name();
     public String acion();
     public int pf(int i);
}

编写一个实现类

public class Absract1 implements Animal {
    @Override
    public int pf(int i) {
        return i*i;
    }

    @Override
    public String name() {
        return "我的名字叫";
    }

    @Override
    public String acion() {
        return "我擅长";
    }
}

编写一个测试类如下:

public class AnimalTest {
    public static void main(String[] args) {
        Absract1 an=new Absract1();
        System.out.println(an.pf(5));
        System.out.println(an.name());
        System.out.println(an.acion());
    }
}

输出结果如下:

四,接口类使用实例

接口使用的过程为:

1,声明接口类,在接口类内编写常量,方法等

2,声明实现接口类(implements),实现接口,重写接口类的方法

3,声明测试类,在测试类内实例化实现类,调用实现类内的方法

public class InterfaceTest {
    public static void main(String[] args) {
        // 全局变量可以直接调用
        System.out.println(Flyable.MAX_SPEED);

        // 实例化实现类Plane
        Plane plane = new Plane();
        plane.fly();
        plane.stop();

        // 实例化实现类Bullt
        Bullet bullet = new Bullet();
        bullet.fly();
        bullet.stop();
        bullet.att();
    }
}

// 飞接口
interface Flyable{

    // 全局常量
    public static final int MAX_SPEED = 7900;
    int MIN_SPEED = 1;

    // 抽象方法
    public abstract void fly();
    void stop();

}

// 攻击性接口
interface Attackable{

    // 抽象方法
    public abstract void att();

}


/**
 * 飞机实现类
 */
class Plane implements Flyable{
    @Override
    public void fly(){
        System.out.println("使用引擎起飞");
    }

    @Override
    public void stop(){
        System.out.println("驾驶员减速降落");
    }
}


/**
 * 风筝实现类
 */
class Kite implements Flyable{
    @Override
    public void fly(){
        System.out.println("乘风而飞");
    }

    @Override
    public void stop(){
        System.out.println("收线降落");
    }
}


/**
 * 子弹实现类
 */

 class Bullet implements Flyable,Attackable{
    @Override
    public void fly(){
        System.out.println("biubiubiu");
    }

    @Override
    public void stop(){
        System.out.println("papapa");
    }

    @Override
    public void att(){
        System.out.println("攻击性");
    }
 }

// 接口的多继承

interface A extends Flyable,Attackable{

}

参考:(13条消息) Java语言基础-接口与实现类_寒 暄的博客-优快云博客

Java基础之接口(interface)详解 对接口的一些简单描述,具体还要根据代码详细看 阅读详情

相关推荐

Java中什么是接口(interface)?

关于Java中接口的理解、定义和使用以及接口体现多态性,两道简单拍错题,一道简单课后题、

小贺想改变 3026

面向对象(接口)

目录 接口:概述 1.1接口的特点 1.2定义Java类的语法格式 接口举例 接口定义举例 接口代码举例 接口:概述 接口就是规范,定义的是一组规则,体现了现实世界中“如果你是/要...则 必须能...”的思想。继承是一个"是不是"的关系,而接口实现则是 "能不能" 的关系。 接口的本质是契约,标准,规范,就像我们的法律一样。制定好后大家都 要遵守。 接口(interface)是抽象方法和常量值定义的集合。 1.1接口的特点 1.用interfa............

qq_61616157的博客 1063

告别手动干预:深入浅出LPDDR5的Background ZQ校准与DVFSQ切换避坑指南

本文深入解析LPDDR5的Background ZQ校准与DVFSQ切换技术,帮助工程师实现DRAM阻抗校准的自动化管理。通过详细配置指南和实战案例,揭示如何避免动态电压调节下的模式切换陷阱,提升信号完整性和系统能效。特别适合嵌入式系统和移动终端开发者参考。

weixin_30329623的博客 452

java中的接口interface

java中的接口interface 接口(interface)是抽象方法和常量值的定义的集合。 从本质上讲,接口是一种特殊的抽象类,这种抽象类值包含方法和常量的定义,没有变量和方法的实现。 TestInterface.java //唱歌的接口 interface Singer { //唱歌 public void sing(); //睡觉 public void sl...

Mao的博客 1073

STM32F103C8T6的PC13-15引脚配置避坑指南:为什么你的IO口不工作?

本文详细解析了STM32F103C8T6的PC13-15引脚作为普通IO口不工作的原因及解决方案。这三个引脚默认关联侵入检测和低速外部时钟等特殊功能,需先禁用TAMPER和LSE,并开启AFIO时钟,才能正确配置为普通GPIO。文章提供了标准外设库和HAL库的配置步骤、常见问题排查方法及硬件设计注意事项。

weixin_29169899的博客 522

多IMU车载GNSS/INS数据集及介绍

文章目录前言非常棒的GINS数据集采集轨迹采集时间MEMS IMU详细信息IMU测量值方程及相关误差建模参考噪声参数安装参数文件格式描述 前言 “本文作者感谢武汉大学多源智能导航实验室和牛小骥教授提供了本文所需的GNSS/INS数据集。” 本博文介绍数据集链接为多IMU车载GNSS、INS数据集,欢迎大家下载,由于是开源数据集,因此下载不需要积分 非常棒的GINS数据集 这是一套非常好的用于GNSS/INS组合导航应用的车载数据集,本数据集采集于湖北省武汉市一处工业园区,为开阔天空场景,GNSS R

十八与她的博客 6439

java中接口类interface的作用

在Java中,接口(interface)是一种定义了一组方法(方法签名)但没有实现的引用类型。接口中只定义方法的签名而不包含方法体,具体的实现由实现接口的类去完成。总的来说,接口在Java中的作用是定义一组规范,实现多态性,分离接口和实现,实现多继承以及定义常量。实现多继承:Java中的类只支持单继承,但是一个类可以实现多个接口。这使得接口成为一种在类之间共享功能的方式,通过实现多个接口,可以获得不同接口定义的多个功能。定义常量:接口可以定义常量,这些常量在实现类中可以直接使用。

Wzideng@qq.com 2234

为何LPDDR4支持on-die ECC,但是DDR4却不支持呢?

DRAM的ECC,目前的编码方式都是128bit data,产生8bit parity或者ECC code. 而且必须要128bit才行。这8bit的ECC code是要被写入到DRAM内存里面的,从而read的时候,可以读取这8bit ECC code来判定read data是否有错,如果是SBF,就可以纠错了,如果是double bit,大部分时候是可以detect到错误,即所谓的SEC(Single Error Correct) + DED(Double Error Detect).

一个DRAM从业者的告白 1555

JAVA —— interface接口类

接口是多个类的公共规范。 接口是一种引用数据类型,最重要的内容就是其中的:抽象方法。 Java 7 :接口内容可以包含有常量,抽象方法; Java 8 :接口内容还额外包含有默认方法,静态方法; Java 9 :还额外包含有私有方法; 接口不能直接使用,必须要有一个实现类来实现接口 默认方法(default):用于解决接口升级(当你还想加入抽象方法时,用默认方法加入不影响其他实现类的实现),也可以被实现类覆盖重写。 静态方法(static):不能通过接口实现类的对象来调用接口当中的静态方法;通过接口名称,直

basinle的博客 247

Unity 数字孪生笔记1 工具介绍

前言 工欲善其事必先利其器 流程思考 数字孪生本质上一种基于实际物理数据的可视化方案,通过对接实际数据,在三维界面中展示孪生结果。 那么这个流程就很简单了。 整个流程分为三块:数据来源-》数据分析-》数据展示 输入数据 首先我们需要考虑我们能拿到什么。第一,实际物体的三维数据从哪里来,第二,实际数据怎么获取到。 模型数据 工业上常常会用到CAD模型,CAD模型具有精确、统一的特点,但是CAD不是三角面片,我们不能直接导出到Unity中,而且导入之后有很多不合理的地方,例如面片杂乱、面数过高等问题。针对这个

Thissky的专栏 1万+

ESP32设备驱动-TM1637-驱动4位7段数码管

TM1637是一款带键盘扫描接口的LED(发光二极管显示器)驱动控制专用电路,内部集成了MCU数字接口、数据锁存、LED高压驱动、键盘扫描等功能。 TM1637使用DIP20/SOP20封装,主要适用于电磁炉、微波炉、小家电的显示驱动。

视觉与物联智能 2117

Java interface接口类的详细介绍

interface接口类的详细介绍,特点及使用方法成员方法 , 和接口类的猫狗案例

阿博的博客 1188

零基础学习simulink-- 四旋翼和六旋翼无人机的建模与动力学分析

通过上述代码实现,您可以逐步创建和搭建一个多旋翼无人机(如四旋翼、六旋翼)的动力学模型,并结合自适应控制器进行仿真。该模型不仅考虑了无人机的基本动力学行为,还引入了空气阻力、螺旋桨之间的相互作用以及气流干扰等复杂效应,使得仿真结果更加接近实际情况。Simulink 提供了强大的建模和仿真工具,使得控制系统工程师能够快速构建复杂的控制算法,并将其应用于实际工程中。多旋翼无人机动力学建模:建立四旋翼和六旋翼无人机的动力学模型,包括平移运动和旋转运动方程。升力和扭矩模型。

amy_mhd的博客 386

java 接口类定义常量_Java中定义常量方法及建议(Class/Interface)

Class定义常量方法(推荐方法)//final修饰符public final class Constants {//私有构造方法private Constants() {}public static final int ConstantA = 100;public static final int ConstantB = 100;......}采用“类.常量名”方法进行调用。需要私有化构造方法,...

weixin_36249804的博客 4417

超越防抖:索尼CXD5254GG芯片如何重新定义电子影像稳定

索尼CXD5254GG芯片通过融合6轴IMU与图像传感器数据,重新定义了电子影像稳定技术。其核心突破在于实时地平线校正、抑制果冻效应和镜头畸变校正,并搭载智能画质控制器提升画面细节。该芯片适用于广播制作、体育娱乐、安防监控和机器人视觉导航等专业领域,提供开箱即用的优化参数配置,大幅缩短开发周期。CXD5254GG不仅实现稳定成像,更通过姿态感知与智能优化,为专业影像应用提供了完整的稳定解决方案。

致力于lidar应用开发 113

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

hualinux java 1.13:接口类interface在什么情况下使用

目录 一、接口是制定标准的 二、接口的作用 2.1 不使用接口类实现 2.1.1 代码目录结构 2.1.2 实现代码 2.1.3 不使用interface实现分析 2.2 添加使用方式实现 2.2.1 目录结构 2.2.2 相关代码 2.2.3 优缺点 三、总结 发现不少初学者,看教程能看得懂,例子也能做出来,但是在实际项目中怎么操作,不懂!比如今天说的接口类interface。 看infterface教程相信都能看得懂,例子也能看明白,但是一问实际项目中什么情况下才要使用in.

hualinux(阿华的linux) 412

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Java基础语法--接口和抽象类

接口类的关键字:interface,他的定义是:public interface 接口名{接口的实现}上面可知:Shape是一个接口类,里面有PI常量,诶?他不是被没被static final修饰吗?怎么是常量呢?待会来讲。好,初次之外还有计算面积的方法,但没有具体的实现,还有计算周长的方法也没有具体的实现,和一个形状的方法,但他有实现。发现了吗?有点类似于继承啊。我可以用接口类中的方法和常量,对的,那么有什么区别呢?我们先来看几个接口类的特点1.接口类中不能有普通的成员方法,但可以有default定义的方

codeking10086的博客 581

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

javascript java接口_JavaScript有接口类型(如Java的’interface’)吗?

没有“这个类必须有这些函数”的概念(即没有接口本身),因为:> JavaScript继承是基于对象,而不是类。这不是一个大问题,直到你意识到:> JavaScript是一种极其动态类型的语言 – 您可以使用适当的方法创建一个对象,这将使它符合接口,然后取消定义所有符合的东西。这将是那么容易颠覆类型系统 – 即使意外! – 它不值得尝试,并建立一个类型系统在第一位。相反,JavaScri...

weixin_39632379的博客 216

从 0 搞懂 C++ 接口类:纯虚函数完全解析(对标 Java Interface)

C++通过纯虚函数和抽象类实现Java接口功能。核心机制包括:1)使用virtual和=0声明纯虚函数;2)抽象类不可实例化;3)通过继承和多态(vtable机制)实现动态绑定。工程要点:虚析构函数、override标记、严格=0语法。典型应用于系统层接口设计(如HAL),实现厂商解耦。相比Java的interface关键字,C++采用更底层的虚函数机制提供相同功能。

Mark Wu 的博客 750

java 抽象接口类,Java接口(interface)和Java抽象类(abstract class)的区别(详诉版)

1.概述一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架,当代表业务逻辑的高层抽象层结构合理时,你底层的具体实现需要考虑的就仅仅是一些算法和一些具体的业务实现了。当你需要再开发另一个相近的项目时,你以前的抽象层说不定还可以再次利用 。面对对象的设计,复用的重点其实应该是抽象层的复用,而不是具体某一个代码块的复用。面向对象设计的重点在于抽象,...

weixin_36266554的博客 298

01-java中“接口”的概念

java语言中,“接口” 有两种意思(两种含义):(1)概念性的接口:指系统对外提供的所有服务。(2)使用interface关键字定义的实实在在的接口:接口类型。姓名:万秦龙 邮箱:qinlong.wan@qq.com (630657353@qq.com) Q Q: 630657353

HymanW 379

python接口类型有哪些_Python-14-class 类的接口

Python 中的接口问题作为习惯了 java 语言的开发者来说,我首先想到的是,python 有接口吗?然后查了一下。大部分的解答如下:没有。在Python中没必要使用类似Java的interface。因为Python里有多继承和使用鸭子类型。在Python中,协议就是接口。例如上下文管理协议,只要实现了对应的__enter__, __exit__方法就实现了这个上下文管理协议。Java中的接口...

weixin_39933508的博客 655

c++ 接口类、纯虚类、抽象类的杂谈

这些东西都是思想层面的东西,不是语言层面的。 实际上,C++中并没有明确的接口的定义,与之等价的是纯虚类,既只有纯虚函数的类,而c++中抽象类的概念是,包含至少一个纯虚函数的类。由于java只支持单继承,所以出现了interface的定义,从而用来模拟多继承。 可以这样理解,按抽象程度递增的顺序说就是:普通类->抽象类(java中由abstract修饰的类)->接口(纯虚类)(java中interface修饰的类)。 参考《Effective C++》条款31和条款34: c++中int

flying_ant2018的博客 761

java 第12天 单例 接口

接口不能直接创建对象?抽象类中既可以出现普通方法也可以出现抽象方法。之后接口中允许出现普通方法 但是前面必须有。四大类型都能产生对应的.class文件。.synchronized 枷锁。4.@interface 注释类。接口可以间接创建对象【创建的同时。*懒汉式 尚不完善 需要枷锁。3.interface 接口类。抽象类中的属性都是普通属性。之后接口中允许出现私有方法。接口中的方法都是抽象方法。所有抽象方法全部实现】接口:多实现 多继承。2.enum 枚举类。

Miserables_的博客 620

接口应用实例 java_java接口的实例,java接口应用举例

相信大家对于java接口应该都不会陌生,下面给大家带来的也是一个java接口的实例,一起来看看吧。java接口实例首先的话,我们先在eclipse当中建立一个java项目,命名为Interface-example。之后,在项目的下面建名为test的包。之后按照下面的步骤进行。创建接口类Define文件,在项目上右键- New-Interface-输入接口名Define-finsh。在接口当中编写代...

weixin_34697150的博客 561

java访问windows注册表 method native_Yolo-v3目标检测—Java调用C++(JNI)

前言其实这篇文章重点在如何用Java的JNI调用C++的dll,记录一下,避免以后自己忘了.....原文发表在语雀文档上,排版更美观简介JNI—摘自百度百科JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C&C++)。从Java1.1开始,JNI标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。J...

weixin_32535389的博客 162
上一篇: JAVA抽象类,抽象方法
下一篇: JAVA时间戳-Calendar类(包括set,get,add方法)
涵冰...
博客等级 码龄4年 2438粉丝 243原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涵冰...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值