0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Java为什么要使用接口_java接口怎么使用

h1654155282.3538 来源:网络整理 2018-03-26 17:44 次阅读

Java接口是什么

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

接口(英语:Interface),在JAVA编程语言中是一个抽象类型(Abstract Type),它被用来要求类(Class)必须实现指定的方法,使不同类的对象可以利用相同的界面进行沟通。接口通常以interface来宣告,它仅能包含方法签名(Method Signature)以及常数宣告(变量宣告包含了 static 及 final),一个接口不会包含方法的实现(仅有定义)。

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

其中一个使用接口的优势是,可以利用他们模拟多重继承,类在JAVA中不允许多重继承,所有在JAVA中的类必须而且仅能有一个父类,而java.lang.Object(JAVA类型系统中最顶层的类型)是唯一一个例外。

JAVA的类可以被实现许多个接口,然而一个接口则无法实现其他的接口。

Java为什么要使用接口

实现具体功能时,接口和实现的类分离。接口定义为XxxService,实现为XxxServiceImpl。接口提供了一个公用的方法提供方。 接口是用来规定子类的行为的。

面向接口编程的好处:

1、根据客户提出的需求提出来,作为接口的;业务具体实现是通过实现接口类来完成的。

2、当客户提出新的需求时,只需编写该需求业务逻辑新的实现类。

3、假如采用了这种模式,业务逻辑更加清晰,增强代码可读性,扩展性,可维护性。

4、接口和实现分离,适合团队协作开发。

5、实现松散耦合的系统,便于以后升级,扩展。

Java接口能实现什么功能呢

在Java语言规范中,一个方法的特征仅包括方法的名字,参数的数目和种类,而不包括方法的返回类型,参数的名字以及所抛出来的异常。在Java编译器检查方法的重载时,会根据这些条件判断两个方法是否是重载方法。但在Java编译器检查方法的置换时,则会进一步检查两个方法(分处超类型和子类型)的返还类型和抛出的异常是否相同。

Java接口本身没有任何实现,因为Java接口不涉及表象,而只描述public行为,所以Java接口比Java抽象类更抽象化。但是接口不是类,不能使用new 运算符实例化一个接口。

如:

x=new comparable(……);//这个是错误来的。

但是可以声明接口变量

Comparable x; //这是允许的。

Java接口的方法只能是抽象的和公开的,Java接口不能有构造器,Java接口可以有public、静态的和final属性。即接口中的属性可以定义为

public static final int value=5;

接口把方法的特征和方法的实现分割开来。这种分割体现在接口常常代表一个角色,它包装与该角色相关的操作和属性,而实现这个接口的类便是扮演这个角色的演员。一个角色由不同的演员来演,而不同的演员之间除了扮演一个共同的角色之外,并不要求其它的共同之处。

接口的定义方式如下

接口的主体包含着抽象方法,但所有方法在接口内(定义上)都是抽象(Abstract)方法,所以abstract的关键字在接口内则不被需要。由于接口代表着一个对外行为的集合,所以任何方法在接口内都是public(公开的)。

Java为什么要使用接口_java接口怎么使用

接口内的成员皆为静态(static)、final及公开(public),反之,他们可以成为任何类或接口的类型

接口的使用解决类只能单继承的问题,因为一个类可以实现多个接口。

那么Java中要如何去实现一个接口并且在实现他的子类中调用接口中的方法呢?

接口的实现方式

Java为什么要使用接口_java接口怎么使用

如果一个类实现了一个接口,而没有实现接口的所有方法,则它必须被标注为abstract(抽象类)。一个抽象类的子类必须实现它未完成的方法,假如该项子类仍不会实现接口的所有方法,那么该项子类依然需要被标注为abstract。

接口通常被使用在Java编程语言,用来做回调函数使用[2] 。Java并不允许方法作为参数传递使用,因此,其中一个解决办法则是可以定义一个接口,把这个接口当成方法的参数,以此来使用该项对象的方法签名。

子接口[编辑]

接口可以被延伸为数个不同的接口,可以使用上述所描述的方法,举例来说:

Java为什么要使用接口_java接口怎么使用

以上的程序片段是合法定义的子接口,与类不同的是,接口允许多重继承,而Predator 及 Venomous 可能定义或是继承相同的方法,比如说kill(Prey prey),当一个类实现VenomousPredator的时候,它将同时实现这两种方法。

有些泛用的Java接口可供参考:

Comparable

拥有一个方法compareTo,用以描述两个对象是否相等,或是其中一个对象大于另外一个对象。泛型允许已经实现的类,其对象可以用来互相比较。

Serializable 是一个marker interface 没有任何接口或是字段,仅有一个空的主体,它被用来表示一个类可以被序列化。它的Javadoc描述了他是如何运作,而且不需要被强制编程。

为了能够向上转型为多个基类型。即利用接口的多实现,可向上转型为多个接口基类型。

java接口的使用

java接口或抽象类都可以使用向上转型,它们用的都是java运行时多态技术,或者叫运行期绑定技术。下面是一个java接口的普遍用法:

Java为什么要使用接口_java接口怎么使用

结果:

I’m a student.

I’m a teacher.

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    8472

    浏览量

    150763
  • JAVA
    +关注

    关注

    19

    文章

    2953

    浏览量

    104504
收藏 人收藏

    评论

    相关推荐

    JAVA操作英创主板SPI接口简介

    访问硬件资源,英创提供了Java硬件支持包,主要支持的工控接口有:以太网、串口、CAN、GPIO、SPI、I2C、RTC等。本文主要介绍使用Java语言调用英创Java硬件支持包,操作
    发表于 10-20 13:16

    SqlServer触发器调用java接口的方法

    SqlServer触发器调用java接口
    发表于 06-15 09:53

    基于JAVA的ICQ系统的源代码

    基于JAVA的ICQ系统 服务器与客户间通过套接口Socket(TCP)连接。在java中使用套接口相当简单,Java API为处理套
    发表于 03-10 13:39 13次下载

    JAVA制作的ICQ系统

    JAVA制作的ICQ系统   基于JAVA的ICQ系统服务器与客户间通过套接口Socket(TCP)连接
    发表于 03-29 14:12 21次下载

    Java中包、接口与异常处理(exception) 实验

    实验 4 包、接口与异常处理(exception) 一、实验目的     了解 Java 中包(package)、接口(interface)和异常处理(exception)的作用,掌握包、
    发表于 09-23 19:00 1180次阅读

    McObject发布用于eXtremeDB的Java本地接口

    McObject发布用于eXtremeDB的Java本地接口  实时应用数据库系统的创新厂商McObject公司发布了用于其嵌入式数据库产品eXtremeDB™的Java本地接口
    发表于 02-01 13:43 901次阅读

    接口、内部类和Java API基础

    理解接口的作用,理解接口和实现接口的类的关系,掌握声明接口、一个类实现多个接口的声明和使用方法。理解内嵌类型的概念,掌握声明内部类的方法。熟
    发表于 11-23 11:52 0次下载

    java动态代理机制详解的类和接口描述

    的我们的功能,我们更需要学习的是其底层是怎么样的一个原理,而AOP的原理就是java的动态代理机制,所以本篇随笔就是对java的动态机制进行一个回顾。 在java的动态代理机制中,有两个重要的类或
    发表于 09-28 13:33 0次下载

    Java学习路线教程之Java新手必须学习那21个技术点详细资料说明

    Java中调用本地接口方法,一般用于C/C++代码的调用。需要注意的是在java中加载so/dll文件的路径问题,本身调用接口并不复杂,但是经常在是否加载了所需的本地
    发表于 12-19 15:23 19次下载

    基于Java接口快速开发框架

    作者丨编码砖家 来源丨http://adkx.net/w5m4s Part1简介 magic-api 是一个基于Java接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动
    的头像 发表于 09-10 09:36 3687次阅读

    基于Java接口快速开发框架——magic-api

    magic-api 是一个基于Java接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动映射为HTTP接口,无需定义Controller、Service、Da
    发表于 07-19 11:42 873次阅读
    基于<b class='flag-5'>Java</b>的<b class='flag-5'>接口</b>快速开发框架——magic-api

    Java序列化怎么使用

    java.io.Serializable 接口 public interface Serializable {} Serializable 接口没有定义任何的方法,是一个空接口。为
    的头像 发表于 10-10 14:19 414次阅读

    java接口和抽象类的区别

    Java中的接口(Interface)和抽象类(Abstract class)都是抽象的概念,它们可以用来定义类的行为和特征。虽然它们具有一些相似之处,但也存在一些重要的区别。本文将详尽介绍Java
    的头像 发表于 11-21 09:45 501次阅读

    Java中抽象类和接口的介绍

    Java是一种面向对象的编程语言,提供了抽象类和接口两种机制来帮助开发人员组织和管理代码。本文将详细介绍Java语言中抽象类和接口的概念、特点、使用方式以及它们之间的区别和联系。 抽象
    的头像 发表于 11-21 09:47 429次阅读

    java接口是特殊的抽象类吗

    Java接口是一种特殊的抽象类吗? 在Java编程语言中,接口(interface)与抽象类(abstract class)是两种不同的概念,尽管它们之间存在一些相似之处,但在设计和使
    的头像 发表于 11-21 10:07 587次阅读