接口的定义

用interface关键字,格式如下

public interface 接口名{}

接口的使用

1)接口不能实例化
2)类实现接口用implements关键字修饰
3)实现类需实现接口中所有的抽象方法,否则是抽象类
4)一个类可以实现多个接口

public class 类名 implements 接口1,接口2 {}

5)接口可以单继承,也可以多继承,即一个接口可以继承多个接口。如:
interface1 extends interface2, interface3 { }
当 classA implements interface1 时,除了实现interface1的抽象方法,还必须实现其父类interface2, interface3的所有抽象方法

接口中成员的特点

jdk7以前:接口只能定义抽象方法
jdk8开始:接口可以定义有方法体的方法(默认方法default修饰、静态方法static修饰)
jdk9开始:接口可以定义private修饰的私有方法

成员变量

默认修饰符是public static final,可以省略

构造方法

不存在,没有

成员方法

1、抽象方法

1)默认的修饰符是public abstract,可以省略
2)无方法体

2、默认方法

1)用default关键字修饰,有方法体
2)默认方法的定义格式如下,public可以省略

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

3)默认方法不强制子类重写,若要重写,重写的时候去掉default关键字
4)一个类实现多个接口,多个接口存在相同的默认方法名,这种情况该类中必须重写默认方法

3、静态方法

1)用static修饰
2)静态方法的定义格式如下,public可以省略

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

3)静态方法只能用接口名调用,对象或类名不能调用

4、私有方法

1)private关键字修饰,分为默认私有方法和静态私有方法
2)默认私有方法定义

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

3)静态私有方法定义

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

使用示例

接口A:

public interface InterfaceA {void aShow();default void show(){System.out.println("InterfaceA 的show方法");showG();}public default void showZ(){System.out.println("InterfaceA 的showZ方法");showG();}private void showG(){System.out.println("InterfaceA 的 private showG方法");}static void showA(){System.out.println("InterfaceA 的static showA方法");showD();}private static void showD(){System.out.println("InterfaceA 的private static showD方法");}
}

接口B:

public interface InterfaceB {default void show(){System.out.println("InterfaceB 的show方法");}
}

实现类:

public class ImpClassA implements InterfaceA,InterfaceB{@Overridepublic void aShow() {System.out.println("ImpClassA 对抽象方法 aShow 的重写" );}@Overridepublic void show() {System.out.println("ImpClassA show方法");}
}

测试类:

public class Test6 {public static void main(String[] args) {InterfaceA.showA(); //接口调用静态方法ImpClassA impClassA = new ImpClassA();impClassA.show(); //两个接口都有默认show方法,类需要进行重写impClassA.showZ(); //对象调用接口中的默认方法impClassA.aShow(); //实现接口中的抽象方法,对象进行调用}
}

运行结果:

InterfaceA 的static showA方法
InterfaceA 的private static showD方法
ImpClassA show方法
InterfaceA 的showZ方法
InterfaceA 的 private showG方法
ImpClassA 对抽象方法 aShow 的重写

Java接口的定义、使用及成员特点相关推荐

  1. java接口如何定义常量 c_在Java接口中怎样访问定义的常量呢?

    java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能).那么我们在Java接口中怎 ...

  2. java定义常量语法错误的是_在Java接口中定义常量,下面语法错误的是( )_学小易找答案...

    [单选题]Why did Ben's emotions change so much? [判断题]Write the title in the middle of the first line. [单 ...

  3. java接口如何定义常量 c_java接口定义常量研究

    背景 和同事讨论到,在接口中定义常量的问题,引发了争论,即,假如在接口中定义变量,是否需要用static来限定的问题,或者说用static和不用static会有什么区别. 引论 package spr ...

  4. Java 接口的定义、接口的成语、接口的实现、接口与类的多继承、JDK1.8后新增方法、使用接口的注意事项

    什么是接口? 接口是更加彻底的抽象,在JDK 1.8之前接口中只能是抽象方法和常量. 接口体现的是规范思想,实现接口的子类必须重写完接口的全部抽象方法. 接口的基本定义格式: 修饰符 interfac ...

  5. java 接口 属性_浅谈java接口中定义属性

    package com.supan.reflact; public interface PersonObject { /** * 在接口中定义属性的知识点: * 1,属性默认的修饰词是:public ...

  6. java批量删除接口怎么定义_教你在Java接口中定义方法

    基本上所有的Java教程都会告诉我们Java接口的方法都是public.abstract类型的,没有方法体的. 但是在JDK8里面,你是可以突破这个界限的哦. 假设我们现在有一个接口:TimeClie ...

  7. java中 关于静态方法的定义_为什么我们不能在Java接口中定义静态方法?

    从Java 8开始,Java接口中允许使用静态方法. 从Java 8开始,接口也可以具有静态帮助器方法.public interface vehicle { default void print()  ...

  8. Java接口的定义与实现

    普通类:只有具体实现 抽象类:具体实现和规范(抽象方法)都有! 接口:只有规范 接口就是规范,定义的是一组规则,体现了现实世界中"如果你是..你必须能.."的思想,如果你是汽车你必 ...

  9. java接口能定义非抽象方法吗_接口中只能定义常量和抽象方法,对么

    接口中只能定义常量和抽象方法,对.在Java语言中,接口是一个抽象类型,是抽象方法的集合,通常以关键字interface来声明.一个类通过继承接口的方式,从而来继承接口的抽象方法. 接口中只能定义常量 ...

  10. java接口的定义及使用细节

    接口的概念(菜鸟教程): 使用interface关键字定义一个接口. 接口的属性,默认会使用public static final隐式修饰,且只能用public修饰: 接口的方法,可以拥有抽象方法.静 ...

最新文章

  1. luogu P3379 【模板】最近公共祖先(LCA)
  2. post from open live writer
  3. swift 可变參数
  4. c mysql日期时间格式_mysql日期和时间类型
  5. Java 哪些事最困扰你?
  6. 漫步线性代数十七——正交基和格拉姆-施密特正交化(上)
  7. mysql sbr_腾讯云数据库团队:MySQL语句复制(SBR)的缺陷列举
  8. 位姿矩阵求逆 (搬运)
  9. A题:电流信号检测装置(本科)-- 2018年TI杯大学生电子设计竞赛
  10. 联想服务器改xp系统,联想win7改xp蓝屏怎么解决
  11. 腾讯云COS云存储入门(一)
  12. 计算机方面的缩写大全
  13. 一张纸的厚度为0.08mm,对折多少次能达到或超过珠穆朗玛峰的高度(8848.13米)
  14. 2022年最新春招作战表…
  15. 趣味Python——如何帮女朋友快速抢票
  16. 序列1 - 以太坊的诞生,史上最大ICO之一
  17. 电脑投屏到电视android,电脑怎么投屏到电视?看完这篇文章你就懂了
  18. python会搞坏电脑吗_VPython会破坏所有tkinter窗口
  19. 局域网限速工具幻境网盾使用教程
  20. 手动卸载删除ActiveX控件。

热门文章

  1. aardio获取数据乱码问题
  2. JQuery EasyUI 教程
  3. 鸿蒙系统手机电脑互传文件,【手机篇】巧借局域网,便捷实现手机电脑间的文件传输...
  4. 关于IDEA中使用git更新代码,会覆盖掉未提交的新代码解决问题
  5. 大数据工具七剑下天山之Flume (一)
  6. shell 多个引号冲突_Shell 引号嵌套
  7. 1072 开学寄语(20 分)
  8. tableau数据汇总/明细/分-总的行列展示— Lee桑的学习笔记
  9. 一文看尽 6篇 CVPR2021 伪装目标检测、旋转目标检测论文
  10. “大自然的印钞机”农夫山泉如何借数藏冲破自己的“天花板”?