接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。

接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。

除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。

接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。另外,在 Java 中,接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。

接口特性

  • 接口中每一个方法也是隐式抽象的,接口中的方法会被隐式的指定为 public abstract(只能是 public abstract,其他修饰符都会报错)。
  • 接口中可以含有变量,但是接口中的变量会被隐式的指定为 public static final 变量(并且只能是 public,用 private 修饰会报编译错误)。
  • 接口中的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法。

接口的声明

接口的声明语法格式如下:

[可见度] interface 接口名称 [extends 其他的接口名名] {// 声明变量// 抽象方法
}

Interface关键字用来声明一个接口。下面是接口声明的一个简单例子。

NameOfInterface.java 文件代码:

/* 文件名 : NameOfInterface.java */
import java.lang.*;
//引入包public interface NameOfInterface
{//任何类型 final, static 字段//抽象方法
}

实例

Animal.java 文件代码:

/* 文件名 : Animal.java */
interface Animal {public void eat();public void travel();
}

接口的实现

当类实现接口的时候,类要实现接口中所有的方法。否则,类必须声明为抽象的类。

类使用implements关键字实现接口。在类声明中,Implements关键字放在class声明后面。

实现一个接口的语法,可以使用这个公式:

Animal.java 文件代码:

...implements 接口名称[, 其他接口名称, 其他接口名称..., ...] ...

实例

MammalInt.java 文件代码:

/* 文件名 : MammalInt.java */
public class MammalInt implements Animal{public void eat(){System.out.println("Mammal eats");}public void travel(){System.out.println("Mammal travels");} public int noOfLegs(){return 0;}public static void main(String args[]){MammalInt m = new MammalInt();m.eat();m.travel();}
}

以上实例编译运行结果如下:

Mammal eats
Mammal travels

重写接口中声明的方法时,需要注意以下规则:

  • 类在实现接口的方法时,不能抛出强制性异常,只能在接口中,或者继承接口的抽象类中抛出该强制性异常。
  • 类在重写方法时要保持一致的方法名,并且应该保持相同或者相兼容的返回值类型。
  • 如果实现接口的类是抽象类,那么就没必要实现该接口的方法。

在实现接口的时候,也要注意一些规则:

  • 一个类可以同时实现多个接口。
  • 一个类只能继承一个类,但是能实现多个接口。
  • 一个接口能继承另一个接口,这和类之间的继承比较相似。

java基础--接口(interface)相关推荐

  1. Java 中接口 interface 实例介绍

    接口(interface) 有时必须从几个类中派生出一个子类,继承它们所有的属性和方法.但是,Java不支持多重继承.有了接口,就可以得到多重继承的效果. 接口(interface)是抽象方法和常量值 ...

  2. Java基础---接口是啥?

    接口 接口:是一个特殊的抽象类,规定了接口的使用者和接口的实现者之间的规范 定义:interface 接口名 {} 特点:接口中定义的属性都是公开静态常量(即使不加修饰符,也默认是public sta ...

  3. Java基础---接口的使用

    接口 接口:是一个特殊的抽象类,规定了接口的使用者和接口的实现者之间的规范 定义:interface 接口名 {} 特点:接口中定义的属性都是公开静态常量(即使不加修饰符,也默认是public sta ...

  4. java基础-接口与实现

    接口的定义和类的定义很相似,可以分为接口声明和接口体积,和类不同的是,使用关键字interface来声明自己是一个接口. 格式如下; interface 接口的名字 这里需要注意的是: 1.如果一个非 ...

  5. java基础-----接口

    接口 : 英文称作interface,在软件工程中,接口泛指供别人调用的方法或者函数.从这里,我们可以体会到Java语言设计者的初衷,它是对行为的抽象.在Java中,定一个接口的形式如下: [publ ...

  6. [Java 基础]接口

    抽象类和抽象方法 抽象方法 在面向对象编程语言中抽象方法指一些只有方法声明而没有具体方法体的方法抽象方法一般存在于抽象类或接口中. java中,抽象方法就是以 abstract 修饰的方法,只需要声明 ...

  7. java基础/接口与继承1(0.96万字)

    文章目录 接口 创建接口 使用接口 什么样的情况下该使用接口? 对象转型 明确引用类型与对象类型的概念 子类转父类(向上转型) 父类转子类(向下转型) 总结 没有继承关系的两个类,互相转换,一定会失败 ...

  8. java基础[接口]

    接口作用:将两个不同的东西连接起来,让他们共同去工作! 具体类:定义某一具体的事物: 抽象类:定义某一类不同种的事物: 接口:定义不同类型的不同种事物,但是却有共同的行为,注重事物的行为,而不是事物的 ...

  9. Java基础——接口

    一.接口语法 接口的创建 interface //接口不能直接创建对象 public interface grammar {//定义的属性都是公有静态属性(默认也是)String name = &qu ...

最新文章

  1. TSR交通标志检测与识别
  2. pandas使用duplicated函数删除dataframe中重复列名称的数据列、默认保留重复数据列中的第一个数据列(removing duplicate columns in dataframe)
  3. AppStore IPv6-only审核被拒原因分析及解决方案-b
  4. JdbcTemplate在Spring的ioc中使用
  5. 成功解决matplotlib绘图的时候横坐标或纵坐标文本显示不全/显示一半/显示不完整的问题
  6. reactjs高阶函数和函数柯里化
  7. html选择文本框后提示消失,两种方法实现文本框输入内容提示消失
  8. Ensure that config phoenix.schema.isNamespaceMappingEnabled is consistent on client and server
  9. 河南理工大学计算机课d,河南理工大學计算机基础课后习题答案.doc
  10. 家庭医疗系统-基于蓝牙无线通信技术
  11. 一连三问 !!! 什么是内存对齐?内存对齐的原因是什么?内存对齐的好处是什么?
  12. 费曼纪念日,霍金和蚁人下了一盘的“量子象棋”
  13. oracle数据库sql语句修改表某列字段长度
  14. [BZOJ4487] [JSOI2015]染色问题
  15. 用于视觉识别的深度卷积网络空间金字塔池化方法
  16. 大一新生HTML期末作业,网页制作作业——明星介绍易烊千玺网站HTML+CSS
  17. JS 在线引入jQuery
  18. 为什么印度人能占领硅谷,1万清华毕业生只能给他们打工?
  19. HashMap夺命连环问,你扛得住吗
  20. WPF跨页面传递数据

热门文章

  1. nginx配置下载文件
  2. 单元测试框架PowerMock
  3. java swing text_Java swing里怎么获得TextField手动输入的值?
  4. 【程序源代码】微信小程序求职招聘、兼职管理系统
  5. CAS开启Rest服务(包括5.x / 4.x / 3.x版本)
  6. 我曾七次鄙视我的灵魂
  7. OFDM 经典整偏估计方法(基于长训练序列)
  8. 小米逆行,乐视顺势,互联网电视结局已定
  9. SpringIOC容器 Bean初始化和销毁回调
  10. 网桥如何把信号传给服务器,无线网桥有怎样的传输方式