Java--接口的定义格式、接口的抽象方法定义和使用、接口的默认方法定义和使用、接口的静态方法定义和使用、接口的私有方法调用和使用、接口的常量定义和使用、接口的内容小结

【JAVA进阶篇】接口和多态的深刻理解 接口就是多个类的公共规范。接口是一种引用数据类型,最重要的内容就是其中的:抽象方法.... 阅读详情

1.接口的定义基本格式

接口就是一种公共的规范标准。

接口就是多个类的公共规范。

接口是一种引用数据类型,最重要的内容就是其中的:抽象方法。

定义一个接口的格式:
public interface 接口名称{
     //接口内容
}

备注:换成了关键字interface之后,编译生成的字节码文件仍然是:.java --> .class。

如果是Java7,接口中可以包含的内容有:
1.常量
2.抽象方法
如果是Java8,还可以额外包含有:
3.默认方法
4.静态方法
如果是Java9,还可以额外包含有:
5.私有方法

2.接口的抽象方法定义

在任何版本的Java中,接口都可以定义抽象方法。

格式:
public abstract 返回值类型 方法名称(参数列表);

定义接口:

public interface MyInterfaceAbstract {

    //这是一个抽象方法
    public abstract void methodAbs1();

    //这也是一个抽象方法
    abstract void methodAbs2();

    //这也是一个抽象方法
    public void methodAbs3();

    //这也是一个抽象方法
    void methodAbs4();
}

注意事项

1)接口当中的抽象方法,修饰符必须是两个固定是关键字:public abstract

2)这两个关键字修饰符,可以选择性地省略。

3)方法的三要素,可以随意定义。

3.接口的抽象方法使用

接口使用步骤:

1)接口不能直接使用,必须有一个实现类来实现该接口。

格式:

public class 实现类名称 implements 接口名称{
       //...
}

2)接口的实现类必须覆盖重写(实现)接口中所有的抽象方法。

去掉abstract关键字,加上方法体大括号。

3)创建实现类的对象,进行使用。

注意事项:

如果实现类并没有覆盖重写接口中所有的抽象方法,那么这个实现类自己就必须是抽象类。

接口的实现类覆盖重写抽象方法:

public class MyInterfaceAbstractImpl implements MyInterfaceAbstract {

    @Override
    public void methodAbs1() {
        System.out.println("这是第一个方法");
    }

    @Override
    public void methodAbs2() {
        System.out.println("这是第二个方法");
    }

    @Override
    public void methodAbs3() {
        System.out.println("这是第三个方法");
    }

    @Override
    public void methodAbs4() {
        System.out.println("这是第四个方法");
    }
}

实现类的对象:

public class Demo01Interface {
    public static void main(String[] args) {
        // 错误写法,不能直接new接口对象使用。
//        MyInterfaceAbstract inter = new MyInterfaceAbstract();

        //创建实现类的对象使用
        MyInterfaceAbstractImpl impl = new MyInterfaceAbstractImpl();
        impl.methodAbs1();
        impl.methodAbs2();
    }
}

4.接口的默认方法定义和使用

从Java8开始,接口里允许定义默认方法。

格式:

public default 返回值类型 方法名称(参数列表){
         方法体
}

备注:接口当中的默认方法,可以解决接口升级的问题。

定义接口:

public interface MyInterfaceDefault {

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

    //新添加了一个抽象方法
//    public abstract void methodAbs2();

    //新添加的方法,改为默认方法
    public default void methodDefault(){
        System.out.println("这是新添加的默认方法");
    }
}

接口实现类A:

public class MyInterfaceDefaultA implements MyInterfaceDefault {
    @Override
    public void methodAbs() {
        System.out.println("实现了抽象方法:AAAAA");
    }
}

接口实现类B:

public class MyInterfaceDefaultB implements MyInterfaceDefault {
    @Override
    public void methodAbs() {
        System.out.println("实现了抽象方法:BBBB");
    }

    @Override
    public void methodDefault() {
        System.out.println("实现类B覆盖重写了接口的默认方法");
    }
}
public class Demo02Interface {

    public static void main(String[] args) {
        //创建了实现类对象
        MyInterfaceDefaultA a = new MyInterfaceDefaultA();
        a.methodAbs();//调用抽象方法,实际运行的是右侧实现类

        //调用默认方法,如果实现类当中没有,会向上找接口。
        a.methodDefault();//这是新添加的默认方法
        System.out.println("==============");

        MyInterfaceDefaultB b = new MyInterfaceDefaultB();
        b.methodAbs();
        b.methodDefault();//实现类B覆盖重写了接口的默认方法
    }
}

1)接口的默认方法,可以通过接口实现类对象,直接调用。

2)接口的默认方法,也可以被接口实现类进行覆盖重写。

5.接口的静态方法定义和使用

从Java8开始,接口当中允许定义静态方法。

格式:

public static 返回值类型 方法名称(参数列表){
    方法体
}

提示:就是将abstract或者default换成static即可,带上方法体。

定义接口静态方法:

public interface MyInterfaceStatic {

    public static void methodStatic(){
        System.out.println("这是接口的静态方法");
    }
}

实现类:

public class MyInterfaceStaticImpl implements MyInterfaceStatic {
}

实现类对象:

public class Demo03Interface {

    public static void main(String[] args) {
        //创建了实现类对象
        MyInterfaceAbstractImpl impl = new MyInterfaceAbstractImpl();//静态与对象无关

        //错误写法
//        impl.methodStatic();

        //通过接口名称直接调用其中的静态方法。
        MyInterfaceStatic.methodStatic();
    }
}

注意事项:不能通过接口实现类的对象来调用接口当中的静态方法。

正确用法:通过接口名称直接调用其中的静态方法。

格式: 接口名称.静态方法名(参数)

6.接口的私有方法定义和使用

问题描述:

我们需要抽取一个共有方法,来解决两个默认方法之间重复代码的问题。
但是这个共有方法不应该让实现类使用,应该是私有化。

解决方案:

从Java9开始,接口当中允许定义私有方法。

1)普通私有方法:解决多个默认方法之间重复代码问题。 格式:

private 返回值类型 方法名称(参数列表){
      方法体
}

2)静态私有方法:解决多个静态方法之间重复代码问题。格式:

格式:
private static 返回值类型 方法名称(参数列表){
      方法体
}
public interface MyInterfacePrivateA {

    public default void methodDefault1(){
        System.out.println("默认方法1");
//        System.out.println("AAA");
//        System.out.println("BBB");
//        System.out.println("CCC");
//        methodCommon();
    }

    public default void methodDefault2(){
        System.out.println("默认方法2");
//        System.out.println("AAA");
//        System.out.println("BBB");
//        System.out.println("CCC");
//        methodCommon();
    }
/*
    private void methodCommon(){
        System.out.println("AAA");
        System.out.println("BBB");
        System.out.println("CCC");
    }

 */
}
public class MyInterfacePrivateAImpl implements MyInterfacePrivateA {

    public void methodAnother(){
        //直接访问到了接口中的默认方法,这样是错误的
//        methodCommon();
    }
}
public class Demo04Interface {

    public static void main(String[] args) {
        MyInterfacePrivateB.methodStatic1();
        MyInterfacePrivateB.methodStatic2();
        //错误写法
//        MyInterfacePrivateB.methodStaticCommon();
    }
}

7.接口的常量定义和使用

接口当中也可以定义“成员变量”,但是必须使用 public static final 三个关键字进行修饰。

从效果上看,这其实是接口的常量。

格式:
public static final 数据类型 常量名称 = 数据值;
public interface MyInterfaceConst {

    //这其实是一个常量,一旦赋值,不可以修改
    public static final int num = 10;
}

备注: 一旦使用final关键字进行修饰,说明不可改变。

注意事项:

1)接口当中的常量,可以省略public static final,注意,不写也照样是这样
2)接口当中的常量,必须进行赋值,不能不赋值。
3)接口中常量的名称,使用完全大写的字母,用下划线进行分隔。(推荐命名规则)
public class Demo05Interface {
    public static void main(String[] args) {
        //访问接口当中的常量
        System.out.println(MyInterfaceConst.num);
    }
}

8.接口的内容小结

在Java9+版本中,接口的内容可以有:

1.成员变量其实是常量,格式:
[public] [static] [final] 数据类型 常量名称 = 数据值;
注意:
 接口当中的常量,必须进行赋值,不能不赋值。
 接口中常量的名称,使用完全大写的字母,用下划线进行分隔。
2.接口中最重要的就是抽象方法,格式:
[public] [abstract] 返回值类型 方法名称(参数列表);
注意:实现类必须覆盖重写接口所有的抽象方法,除非实现类是抽象类。
3.从Java8开始,接口里允许定义默认方法,格式:
[public] default 返回值类型 方法名称(参数列表){方法体}
注意:默认方法也可以被覆盖重写。
4.从Java8开始,接口里允许定义静态方法,格式:
[public] static 返回值类型 方法名称(参数列表){
    方法体
}
注意;应该通过接口名称进行调用,不能通过实现类对象调用接口静态方法。
5.从Java9开始,接口里允许定义私有方法,格式:
普通私有方法:
private 返回值类型 方法名称(参数列表){
      方法体
}
静态私有方法:
private static 返回值类型 方法名称(参数列表){
      方法体
}
注意:private的方法只有接口自己才能调用,不能被实现类或者别人调用。

 

Halcon dyn_threshold详解 dyn_threshold 原型 dyn_threshold(OrigImage, ThresholdImage : RegionDynThresh : Offset, LightDark : ) 功能 利用局部阈值分割图像 参数列表 OrigImage (input_object):原始图像 ThresholdImage (input_object):处理后图像(一般采用滤波处理) RegionDynThresh (output_object):分割后区域 Offset (input_control):灰 阅读详情

相关推荐

数模【Mathematica(安装、入门方法、基本计算、基本图形、创建互动模型、利用数据、幻灯片演示、完整实例)】

Mathematica(安装and激活、入门方法、基本计算、基本图形、创建互动模型、利用数据、幻灯片演示、完整实例) Mathematica_11.3.0 安装教程 Mathematica11.3 激活 P1 笔记本 P2 入门方法 P3 基本计算 P4 基本图形 P5 创建互动模型 P6 利用数据 P7 演示 P8 完整实例

upward 12万+

java接口的定义、使用以及注意事项

接口 接口定义的基本格式 接口就是多个类的公共规范。 接口是一种引用数据类型,最重要的内容就是其中的:抽象方法。 如何定义一个接口的格式: public interface接口名称{ //接口内容 备注:换成了关键字interface之后,编译生成的字节码文件仍然是:.java-->.class. 如果是Java7,那么接口中可以包含的内容有: 1.常量 2.抽象方法 如果是Java8,还可以额外包含有 3.默认方法 4.静态方法 如果是Java9还可以额外包含有: 5.私有方法

ZXLzhuzhu的博客 1431

颠覆性创新的测量框架与跨领域实证分析

颠覆性创新作为科技发展的重要驱动力,其核心在于实现知识体系的范式转换。从技术原理看,这类创新通常具备知识替代、网络重构和跨领域渗透三大特征,通过引用网络分析和文本挖掘等方法可量化评估其影响力。在工程实践中,CD指数、DI指数等测量工具帮助研究者识别具有突破潜力的成果,而深度学习等新兴技术进一步提升了评估精度。当前AI、半导体等领域的热门技术发展表明,模块化架构和产业协同能有效促进颠覆性创新。面对全球范围内创新颠覆性下降的趋势,优化科研评价体系、构建跨学科协作网络成为关键应对策略。

weixin_29735807的博客 323

java 接口 详解

java 接口 内容分享,本篇博文为java 面向对象三大特性——多态篇的补充。

优快云 / 稀土掘金/ B站 / GitHub: Cyan_RA9 3万+

64、5G 侧链通信技术详解

本文详细解析了5G侧链通信的关键技术,包括资源感知与选择、UE间协调、混合ARQ、功率控制、信道探测与CSI报告以及侧链同步。资源感知与选择通过周期性或随机方式实现资源分配,UE间协调通过主动或被动方式避免资源冲突。混合ARQ机制确保数据传输可靠性,功率控制和信道探测优化传输质量并减少干扰。侧链同步则通过多种方式确保设备间时间一致性。这些技术相互配合,构建了高效稳定的5G侧链通信体系,适用于智能交通、物联网、应急通信等多个领域,为未来无线通信发展提供强大支撑。

oil88的博客 102

PY32F406K1CU6 FLASH模拟EEPROM

摘要:本文介绍了基于STM32 FLASH模拟EEPROM的实现方法。头文件flash.h定义了FLASH页大小(256字节)、用户存储区域(4页)及地址范围,提供了等待周期配置和地址校验宏,声明了EEPROM初始化、读写操作等函数接口。源文件flash.c实现了具体功能:配置FLASH等待周期(144MHz需3WS)、页读写擦除操作,以及EEPROM初始化(解锁-擦除-验证-锁定)和缓冲区读写功能。其中写操作采用"读页→更新→擦除→编程"的流程,确保数据安全写入。该方案适用于需要非易失

sam的博客 194

java接口

简单介绍java的接口。

2301_76768457的博客 285

【机器视觉】基于深度学习的托盘PCB识别与计数(有无、正反)

工业机器视觉是指在制造业和工业环境中使用计算机视觉技术来执行检测、测量、识别和控制任务。它结合了硬件(如相机、镜头、光源)与软件(图像处理算法)来自动完成传统上需要人工视觉的任务,从而提高生产效率、产品质量以及工作安全性。工业机器视觉系统通常具有高精度、高速度和高可靠性,能够适应恶劣的工作环境。

专注上位机开发、机器视觉、机器学习、嵌入式软硬件开发 1万+

java接口开发规范

java开发规范

qq_41604890的博客 3083

从原理到实战:深入解析 Synopsys VCS 仿真快照技术,提升验证效率

VCS Checkpoint 技术摘要 VCS Checkpoint 是 Synopsys VCS 提供的仿真状态快照功能,可将完整的仿真状态(寄存器、存储器、时钟、随机种子等)序列化保存。主要应用场景包括:跳过耗时初始化阶段、覆盖率驱动验证、Debug复现和UVM分阶段验证。核心原理是对仿真内核状态的完整序列化,需注意文件句柄等特殊对象需手动处理。 使用方式: 编译时添加 -checkpoint 选项 运行时通过 $save 系统任务或 +checkpoint 参数保存状态 通过 +restore 参数恢

元直的博客 248

64.qt quick-qml使用高德地图插件实现V2版本(新增:位置搜索、路径规划、轨迹编辑等)

qt quick-qml高德地图插件(新增:位置搜索、路径规划、轨迹编辑等) Qt地图插件,使用简单方便,不用浏览器内核,运行高效迅速 跨平台支持,(Qt Windows(MinGW, MSVC)\Linux(桌面、嵌入式)\Android\IOS\等) 在线更新瓦片地图下载,并且支持缓存保存离线地图实现.........

抵抗时间扭曲,坚持做一件有意义的事 6131

15.接口(interface)

接口的定义,它与定义类方式相似,但是使用interface关键字。它也会被编译成.class文件,但一定要明确它并不是类,而是另外一种引用数据类型。引用数据类型:数组,类,枚举,接口,注解。

lingo_y的博客 418

26版SPSS操作教程(高级教程第二十一章)

#专注方能成事 #本期内容:信度分析 #由于导师最近布置了学习SPSS这款软件的任务,因此想来平台和大家一起交流下学习经验,这期推送内容接上一次高级教程第二十章的学习笔记,希望能得到一些指正和帮助~

你好! 1710

接口的方法(Java)

接口的方法接口的定义基本格式抽象方法接口的抽象方法定义接口的抽象方法使用默认方法接口的默认方法定义接口的默认方法使用静态方法接口的静态方法定义接口的静态方法使用私有方法接口的私有方法定义接口的私有方法使用接口的常量定义和使用接口的内容小结 接口的定义基本格式 接口就是多个类的公共规范 接口是一种引用数据类型,最重要的内容就是其中的:抽象方法 如何定义一个接口的格式: public interface 接口名称 {   //接口内容 } 备注:换成了关键字interface之后,编译生成的字节码文件

v02040212的博客 4076

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

pscad IEEE标准系统搭建说明

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

128、java中map作为接口中的常量并使用

静态与.class 文件相关,只能使用接口名调用,不可以通过实现类的类名或者实现类的对象调用。System.out.println("跑起来~~~");System.out.println("吃东西");System.out.println("天上飞");注意:实现类必须覆盖重写接口所有的抽象方法,除非实现类是抽象类。注意:应该通过接口名称进行调用,不能通过实现类调用接口静态方法。可以继承,可以重写,二选一,但是只能通过实现类的对象来调用。接口中的抽象方法注意就是供子类(实现类)重写的。

m0_57310426的博客 1420

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【JAVA基础-接口的常量定义和使用】

接口当中也可以定义“成员变量”,但是必须使用public static final三个关键字修饰从效果上看,这其实就是接口的【常量】格式:public static final 数据类型 常量名称 = 数据值;备注:一旦使用final关键字进行修饰,说明不可修改注意事项:1.接口当中的常量,可以省略public static final,注意:不写也照样是这样2.接口当中的常量,必须进行赋值:不能不赋值,3.接口中的常量的名称,使用完全大写的字母,用下边线进行分隔。(推荐命名方式)

Leoon123的博客 2561

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

接口内容小结

接口interface1.接口定义格式常量默认方法私有方法静态方法2.继承父类并实现多个接口3.接口之间的多继承 1.接口定义格式 public interface 接口名称{ 接口内容 } 1.1接口内容可以包括:常量,抽象方法,默认方法,私有方法,静态方法。 1.2接口没有静态代码块和构造方法。 1.3接口不能直接使用,必须有一个实现类implements 接口。 1.4接口的实现类必须覆盖重...

D_Low的博客 484

java中接口(interface)的定义及使用

java接口(Interface) 接口是java中提供的一种有别于类的特殊类型。在接口内只能包含抽象方法和常量,从JDK1.8开始,接口中也允许存在默认方法。与类相比而言,接口更像是一种约束形式,行为准则。 具体内容及相关细节: 1.接口使用interface关键字定义 2.接口不能直接被实例化,需要具体类实现 3.接口中允许定义抽象方法(可以省略abstract关键字),必须使用public修饰符(public修饰符也可省略),实现类必须重写抽象方法 4.接口中允许使用default关键字定

weixin_51980491的博客 1735

重学Java(028)—— Java基础知识(接口中的私有方法、接口中的常量、接口小结)

学习内容:一、接口中的私有方法二级目录三级目录 一、接口中的私有方法 当我们需要抽取一个共有方法,用来解决两个默认方法之间重复代码的问题的时候,这个共有方法不应该让实现类使用,应该是私有化的。 从Java 9开始,接口中允许定义私有方法。 普通私有方法:解决多个默认方法之间重复代码问题 格式: private 返回值类型 方法名称(参数列表) { 方法体 } 静态私有方法:解决多个静态方法之间重复代码问题 格式: private static 返回值类型 方法名称(参数列表) {

hxhRxz的博客 400

JAVA接口内容小结(方法)

接口的内容: 成员变量其实是常量,格式: public static final 数据类型 常量名称 = 数据值; 注意: 常量必须进行赋值,而且一旦赋值不能改变。 常量名称完全大写,用下划线进行分隔。 接口中最重要的就是抽象方法,格式: [public ][abstract] 返回值类型 方法名称(参数列表); 注意:实现类必须覆盖重写接口所有抽象方法,除非实现类是抽象类 接口允许定义默认方法...

Milk的博客 316

IDEA-接口定义成员变量、接口内容小结

接口当中也可以定义“成员变量”,但是必须使用public static final三个关键字进行修饰。 从效果上看,这其实就是接口的【常量】。 格式: public static final 数据类型 常量名称 = 数据值; 一旦使用final关键字进行修饰,说明不可改变。 注意事项: 1.接口当中的常量,可以省略public static final,注意,不写也照样是这样。 2.接口当中的常量,必须进行赋值,不能不赋值。 3.接口中常量的名称,使用完全大写字母,用下划线进行分割。(推荐命名规则) pub

weixin_46370945的博客 1000

Java接口内容小结

在Java 9+版本中,接口的内容可以有: 成员变量其实是常量。 格式: 【public】【static】【final】数据类型 常量名称 = 数据值; 注意: 常量必须进行赋值,而且一旦赋值就不能改变。 常量名称必须完全大写,用下划线进行分隔。 接口中最重要的就是抽象方法,格式: 【public】【abstract】返回值类型 方法名称(参数列表); 注意: 实现类必须覆盖重写接口中所有抽象方法,除非实现类是抽象类。 从Java8开始,接口允许定义默认方法,格式: 【public】d

WWtianxiang的博客 223

java中的接口

我们已经学完了抽象类,抽象类中可以有抽象方法,也可以有普通方法,构造器,成员变量等。那么什么是接口呢?接口是更加彻底的抽象,接口中全部是抽象方法。(JDK8之前),接口同样是不能创建对象的。//接口的定义格式: 修饰符 interface 接口名称 {// 抽象方法 } // 修饰符:public|缺省 // 接口的声明:interface // 接口名称:首字母大写,满足“驼峰模式”类与接口的关系为实现关系,即类实现接口,该类可以称为接口的实现类,也可以称为接口的子类。

雨溪的博客 1579

java接口(Interface)

java接口(Interface)

just_learing的博客 1277

Java自学.接口学习笔记!

接口学习笔记 文章目录接口学习笔记1.接口的概述与生活中的举例2.接口定义的基本格式3.接口的抽象方法3.1接口抽象方法的定义3.2接口的抽象方法使用4.接口的默认方式4.1接口的默认方法定义4.2接口的默认方法使用5.接口的静态方法5.1 接口的静态方法定义5.2接口的静态方法使用7. 接口的私有方法7.1接口的私有方法定义7.1.1接口的普通私有方法定义7.1.2接口的静态私有方法定义7.2接...

Dia_mond的博客 477

Java各版本接口新增内容小结

Java9+版本中,接口的内容可以有: 1.成员变量其实是常量,格式: [public] [static] [final] 数据类型 常量名称 = 数据值; 注意: 常量必须进行赋值,而且一旦赋值不可改变; 常量名称完全大写,单词间用下划线做分隔。 2.接口中最重要的就是抽象方法,格式: [public] [abstract] 返回值类型 方法名称(参数列表); 注意: 实现类必须...

Stone1742的博客 360
上一篇: Java--super关键字、this关键字、抽象方法和抽象类、以及发红包项目
下一篇: Java--继承父类并实现多个接口、接口之间的多继承、多态的格式和使用、多态中成员变量的使用特点、以及对象的向上转型和向下转型
追光的海马
博客等级 码龄6年 4粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值