接口的基础知识

Java接口是一种特殊的抽象类,定义了一组方法但不提供实现。接口用于规定类应遵循的标准,一个类可以实现多个接口,实现接口必须实现所有抽象方法。JDK8以后,接口允许包含默认方法和静态方法,增加了灵活性。JDK9引入了私有方法,增强内部逻辑。适配器设计模式用于当类只需实现接口部分方法的情况。
摘要由CSDN通过智能技术生成

在 Java 中,接口(Interface)是一种特殊的抽象类,用于描述一组方法的集合而不提供实现。它定义了一套标准,以规定类应该如何去实现这些方法。任何类只要实现了接口中所定义的所有方法,就可以称为实现了该接口。

Java 接口的声明方式类似于一个类,使用 interface 关键字来定义。接口中可以包含常量和抽象方法,但不能包含实例变量和构造方法。其声明格式如下:

[访问修饰符] interface 接口名称 [extends 父接口1, 父接口2, ...] {
    [常量声明]
    [抽象方法声明]
}

实现接口的类必须实现接口中所有的抽象方法。Java 中的一个类可以同时实现多个接口,这可以通过用逗号分隔多个接口来实现。实现接口的类可以正常地继承其他类,并可以在类中添加自己的成员变量和方法。

在 Java 中,接口包括很多类型,例如 JDBC 数据库访问接口、Servlet Web 应用接口、Swing 图形界面接口等。利用接口可以实现代码的复用和扩展性的提高,因此在 Java 代码设计和开发中常常用到。
在 Java 中,实现接口的格式为:

class 类名 [extends 父类名] implements 接口名1 [, 接口名2, ...] {
    // 实现接口中的所有抽象方法
}

其中 class 关键字表示定义一个类,extends 关键字表示继承一个父类,implements 关键字表示实现一个或多个接口。在一个类中实现一个接口时,必须实现该接口中定义的所有抽象方法,否则该类必须也是一个抽象类。

若一个类同时实现多个接口,它们之间使用逗号 , 分隔。同时,可以先继承一个父类,再实现多个接口。需要注意的是,Java 不支持多重继承,但可以通过实现多个接口来达到类似的效果。
 

在 Java 中,接口(Interface)是一种特殊的抽象类,用于描述一组方法的集合而不提供实现。可以从以下几个方面了解到接口的成员特点:

  1. 接口中的成员都是公共的
  2. 接口中的变量默认为 public static final,即为常量,在接口中定义的变量必须进行初始化,而且一旦被初始化后不允许再次修改
  3. 接口中的方法默认为 public abstract,即为抽象方法,接口中的方法不能有方法体(JKD8以后可以了)
  4. 接口中不能包含普通方法、构造器或静态代码块等成员
  5. 一个类可以实现多个接口,实现接口的类必须实现接口中所有的抽象方法

利用接口可以实现代码的复用和扩展性的提高,因此在 Java 代码设计和开发中常常用到。

补充:

在JDK8以后,

允许定义默认方法,需要用default关键字修饰。重写要去掉default关键字。

public default void 方法名(){}

默认方法是指在接口中定义的一个带有实现的非抽象方法,其关键字为default。当一个类实现了这个接口却没有提供此方法,则会使用默认方法。同时,如果该实现类需要对默认方法进行重写,可以直接覆盖该方法,否则可以直接继承默认方法的实现。

静态方法是指在接口中定义的一个带有实现的静态方法,其关键字为static。可以直接通过接口名调用静态方法,不需要通过类创建对象来调用。静态方法只能通过接口来调用,不能被实现该接口的类继承或覆盖。

这两种方法都是在 JDK 8 中引入的新特性,使得接口具有更多的灵活性和可扩展性,同时保证了面向对象编程的核心原则:封装、继承和多态。

在JDK9以后,

在 JDK9 以后的版本中,Java 接口又新增了私有方法。私有方法是只能在接口内部被使用的方法,不能被实现该接口的类或其他地方访问。私有方法可以提取共用的代码逻辑,避免重复的代码。另外,在接口方法之间调用私有方法也可以提高代码的可读性和可维护性。

私有方法有两种类型:实例私有方法和静态私有方法。实例私有方法是指只能被实现该接口的类的实例调用的私有方法,而静态私有方法则是只能被实现该接口的类调用的私有方法,不能通过类名来调用。

这个特性在 JDK9 中首次引入,为接口提供了更多的编程灵活性和函数式编程的特性。
例如:

private void 私有方法名(){

}
private static void 私有方法名(){

}

其中普通私有方法为默认方法服务,静态私有方法为静态方法服务。

适配器 设计模式:

当一个实现接口的类只需要实现接口中一部分方法时,用一个中间类对接口中的所有方法空实现,然后由继承类重写即可。

一般中间类名字为XXXAdapter。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值