一、定义(类之上的公共标准)

一个特殊的类,用interface关键字来表示。只有全局变量和抽象方法。解决Java中子类只能单继承的问题

【语法】 [访问修饰符:public 或 default]   [ 接口名字:和类名形似 ]   ( extends  [ 父接口1,父接口2.。。] )

{

常量定义;

抽象方法;

}

即:

1. 访问修饰符:只能是public或默认       2. 接口名:和类名采用相同命名机制。    3. extends:接口可以多继承。

4. 常量:接口中的属性只能是常量,总是:public static final 修饰。不写也是。

5. 方法:接口中的方法只能是:public abstract。 省略的话,也是public abstract。

【注】

1. 子类通过implements来实现接口中的规范。        2. 接口不能创建实例,但是可用于声明引用变量类型。

3. 一个类实现了接口,必须实现接口中所有的方法,并且这些方法只能是public的。

4. JDK1.7之前,接口中只能包含静态常量、抽象方法,不能有普通属性、构造方法、普通方法。

5. JDK1.8后,接口中包含普通的静态方法。

【示例】

【代码示例】

 //接口:一个特殊的类  关键字  定义接口interface 和 实施接口 implement
//飞行接口
interface Volant {
int FLY_HIGHT = 100; // 总是:public static final类型的;
void fly(); //总是:public abstract void fly();
}
/**善良接口*/
interface Honest {
void helpOther();
} /**Angle类实现飞行接口和善良接口*/
class Angel implements Volant, Honest{ //天使类继承(这里用关键字 implement:实施实现)2个接口,重写2个接口中的抽象方法
public void fly() {
System.out.println("天使在飞行");
}
public void helpOther() {
System.out.println("扶老奶奶过马路!");
}
} //好人类只继承善良的接口
class GoodMan implements Honest {
public void helpOther() {
System.out.println("我是一个好人");
}
} class BirdMan implements Volant {
public void fly() {
System.out.println("我是鸟人,正在飞!");
}
} public class Test_1205_01
{
public static void main(String[] args)
{
Volant volant = new Angel(); //接口Volant 不能创建实例,但是可用于声明引用变量类型(Volant volant) 。
volant.fly();
System.out.println(Volant.FLY_HIGHT); //输出常量接口中的常量 Honest honest = new GoodMan();
honest.helpOther(); //输出 GoodMan类的动作
}
}

[18/12/05]接口(interface)的更多相关文章

  1. php中的抽象类(abstract class)和接口(interface)

    一. 抽象类abstract class 1 .抽象类是指在 class 前加了 abstract 关键字且存在抽象方法(在类方法 function 关键字前加了 abstract 关键字)的类. 2 ...

  2. 《连载 | 物联网框架ServerSuperIO教程》- 12.服务接口的开发,以及与云端双向交互

    1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...

  3. Go语言学习笔记(四)结构体struct & 接口Interface & 反射

    加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 结构体struct struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套: go中的struc ...

  4. Go语言学习笔记(四)结构体struct & 接口Interface & 反射reflect

    加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 结构体struct struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套: go中的struc ...

  5. JavaSE入门学习21:Java面向对象之接口(interface)(二)

    一接口实现的多态 在上一篇博文:JavaSE入门学习20:Java面向对象之接口(interface)(一)中提到了接口的实现存在多态性,那么 这一篇主要就要分析接口实现的多态. 实例一 Test.j ...

  6. go面向对象之多态即接口(interface)

    Go 语言接口 Go 语言提供了另外一种数据类型即接口,它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口. 实例 /* 定义接口 */ type interface ...

  7. typescript接口---interface

    假如我现在需要批量生产一批对象,这些对象有相同的属性,并且对应属性值的数据类型一致.该怎么去做? 在ts中,因为要检验数据类型,所以必须对每个变量进行规范,自然也提供了一种批量规范的功能.这个功能就是 ...

  8. java中的接口interface

    关于接口 接口描述了实现了它的类拥有什么功能.因为Java是强类型的,所以有些操作必须用接口去约束和标记.接口作为类的能力的证明,它表明了实现了接口的类能做什么. 类似与class,interface ...

  9. 14 接口-interface的定义与实现

    接口的基本语法一: 1.使用interface 定义 2.接口当中的方法都是抽象方法 3.接口当中的方法都是public权限 接口的定义: interface USB { public void re ...

随机推荐

  1. Oracle RAC集群搭建(五)--oracle部署

    01,配置好环境 节点01--node1 ORACLE_BASE=/oracle/app/oracle ORACLE_HOME=$ORACLE_BASE/product//db_1 ORACLE_SI ...

  2. linux 运维基础之VM中安装centos6.X

    VM中安装centos详细教程 图片讲解:

  3. 牛客网Java刷题知识点之ArrayList 、LinkedList 、Vector 的底层实现和区别

    不多说,直接上干货! 这篇我是从整体出发去写的. 牛客网Java刷题知识点之Java 集合框架的构成.集合框架中的迭代器Iterator.集合框架中的集合接口Collection(List和Set). ...

  4. JUnit异常断言

    使用Junit时,有多种方式来进行异常的断言 ExeceptedException & @Rule,可以同时断言异常类型和消息 public class ExpectedExceptionsT ...

  5. linux文件夹权限问题

    linux下 ls 某文件夹需要文件夹有 r 读权限. cd 某文件夹 需要文件夹有 x 运行权限 参考: http://www.linuxidc.com/Linux/2016-11/136959.h ...

  6. 在Unity中创建攻击Slot系统

    http://www.manew.com/thread-109310-1-1.html 马上注册,结交更多好友,享用更多功能,让你轻松玩转社区. 您需要 登录 才可以下载或查看,没有帐号?注册帐号  ...

  7. 《Python编程从入门到实践》_第二章_变量和简单数据类型

    什么是变量 举例: >>> message = "Hello,Python!" >>> print (message) Hello,Python ...

  8. WCF寄宿在C#控制台,并用命令行启动

    公司运用wcf比较多,所以自己研究一下寄宿做个笔记,wcf寄宿在控制台有两种方式 第一种,直接在控制台程序内添加wcf服务. 第二种分别添加控制台程序和wcf服务应用程序,前者引用后者,并在app.c ...

  9. Sql server 0x80131904

    这是一个比较让人纠结的错误. 背景:添加了网站的分支,要拿一个现有的数据库做一个新的数据库的东东. 首先就是还原备份,然后做代码的修改.然而在登录的时候报了这个错误.0x80131904 什么插入的列 ...

  10. php有经纬度计算距离

    /** *  @desc 根据两点间的经纬度计算距离 *  @param float $lat 纬度值 *  @param float $lng 经度值 */  function getDistanc ...