Java基础知识-接口

Java接口:
Java中的接口定义了一个引用类型来创建抽象概念。 接口由类实现,它是用来提供概念的实现。

在Java 8之前,一个接口只能包含抽象方法。 Java 8允许接口具有实现的静态和默认方法。

接口通过抽象概念定义不相关类之间的关系。例如,可以创建一个Person类来表示一个人,也可以创建一个Dog类来表示一只狗。

人和狗都会睡觉。 这里的睡觉是一个抽象的概念。 狗会睡觉,人也会睡觉。这里可以创建一个名为Sleep的接口来表示走路这个概念。然后在Person类和Dog类中各自实现Sleep概念(如:实现怎么走路)。 Person类实现了Sleep接口以人的方式睡觉。 Dog类可以实现Sleep接口以狗的方式睡觉
例子:
在相同的包下创建一个接口文件 - Sleep.java 并使用以下代码
在这里插入图片描述
在相同的包下创建一个主类 -JieKou.java 并使用以下代码
在这里插入图片描述
例子解析:
类可以在其声明中使用关键字implements实现一个或多个接口。通过实现一个接口,类保证它将为接口中声明的所有方法提供一个实现,或者类将自己声明为抽象。
如果一个类实现了Sleep接口,它必须提供sleeping ()方法的具体实现。
像类一样,当定义一个新的接口时,也会同时定义一个新的参考接口类型。

以下声明接口有效:
Sleep s;
以下代码声明接口无效,编译会出错:
new Sleep();
例子:
在这里插入图片描述
注:因为接口是定义抽象概念,所以不能创建接口类型的对象,
只能为类类型创建对象,但是可以使用一个接口类型变量来引用那些类实现该接口的任何对象。
Person和Dog类都实现了Sleep接口,所以Sleep类型的引用变量可以引用这两个类的对象。如下代码是没有问题的:
可以使用它的引用类型变量访问接口的任何成员。
当使用接口类型的引用变量调用方法时,它将调用它所引用的对象的方法。

声明接口的一般语法规则:
接口声明以修饰符列表开头,也可以为空(不写)。
像类一样,一个接口可以有一个公共或包级别的范围。
关键字public用于指示接口具有公共范围。缺少范围(不使用)修饰符表示接口具有包级别作用域。 具有包级别作用域的接口只能在其包的成员内引用。
关键字interface用于声明接口,后面是接口的名称。
接口的名称必须是有效的Java标识符。接口主体跟在其名称后面并放在大括号内。接口的主体可以为空。 以下是最简单的接口声明:
在这里插入图片描述
像类一样,一个接口有一个简单的名称和一个完全限定名。
关键字interface后面的标识符是其简单名称。
接口的完全限定名称通过使用其包名称和用点分隔的简单名称组成。

在上面的示例中,Jiekou是简单的名称,com.wenxiandome.Jiekou是完全限定名称。使用接口的简单和完全限定名的规则与类的规则相同。

接口声明总是抽象的,无论是否明确声明它为抽象。

标记接口
标记接口是没有成员的接口。标记接口用来标记类具有特殊含义。
例子:
在这里插入图片描述
Java API有许多标记接口:
如:java.lang.Cloneable,java.io.Serializable和java.rmi.Remote都是标记接口。

功能接口:
仅具有一个抽象方法的接口被称为功能接口。
多态性 - 一个对象,允许多视图
多态性是指对象具有多种形式的能力。多态性是对象提供其不同视图的能力。使用接口使得我们可以创建一个多态对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值