JAVA 接口

##1.概述
如果一个类中所有的方法都是抽象方法,则可以将此类定义为接口.
接口:其实也是另外一种引用数据类型
##2.接口的定义
接口定义需要interface关键字

public interface接口名{
}

特点

  1. 类和接口的关系:是实现的关系,通过**implements关键字表示,实现了该接口的类我们常常也将其称之为子类,并且一个类可以实现多个接口**。格式如下所示:
class 类名 implements 接口名1 , 接口名2 , ... {}
  1. 接口不能实例化(不能直接通过new关键字直接去创建接口的对象)
  2. 接口中不存在构造方法
  3. 接口的子类可以是抽象类也可以是具体的类,但是要求具体的类必须重写接口中所有的抽象方法

成员特点

成员变量:存在默认的修饰符:public static final

成员方法:都是抽象方法(JDK1.7之前包含JDK1.7),存在默认的修饰符:public abstract

构造方法:不存在构造方法

新特性

默认方法

从JDK1.8以后JDK提供了很多关于接口的一些新特性。

JDK1.8以后可以支持在接口中去定义非抽象方法,但是这个方法需要通过default关键字进行修饰,那么这样的方法就是默认方法

产生背景

Jdk1.7之前我们接口中只能定义抽象方法,那么大家试想一下,随着业务的不断增加,我们这个接口可能会衍生出来了很多个实现类;那么现在我们需要对接口进行增强,也就是在接口中去

添加一个抽象方法,那么我们就必须在所有的实现类中去重写该抽象方法,这样就会造成对这个接口的升级带来了很大的不便;为了解决这个问题,Jdk1.8以后就允许在接口中定义非抽象方

法,但是需要使用关键字default修饰,这些方法就是默认方法;

定义格式:

格式:public default 返回值类型 方法名(参数列表) { }
范例:public default void show() { }

注意事项:

1、默认方法不是抽象方法,所以不强制被重写。但是可以被重写,重写的时候去掉default关键字

2、public可以省略,default不能省略

3、如果实现了多个接口,多个接口中存在相同的默认方法声明,子类就必须对该方法进行重写

静态方法

定义格式:

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

注意事项:

1、静态方法只能通过接口名调用,不能通过实现类名或者对象名调用

2、public可以省略,static不能省略

私有方法(JDK9以后)

概述:就是在定义方法的时候把方法的修饰符定义为private,并且不需要定义default关键字。

格式:

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

应用场景:如果多个默认方法或者静态方法中存在相同的代码,此时就可以相同的代码抽取到一个静态方法中,供默认方法和静态方法进行调用。

类和接口之间的关系

类与类之间的关系: 类与类之间是继承的关系,在Java中只能是单继承不能是多继承,但是可以多层继承。

类与接口之间的关系: 类与接口之间是实现的关系,可以是单实现也可以是多实现,并且一个类可以在继承某一个类的同时去实现多个接口。

接口与接口之间的关系: 继承的关系,可以是单继承也可以多继承

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值