Java中接口

本文详细介绍了Java中的接口,包括接口的定义、书写格式、特点以及成员方法,如抽象方法、默认方法、静态方法和私有方法。讲解了类与类、类与接口、接口与接口之间的关系,并探讨了接口的使用策略,强调了接口在软件设计中的重要角色,如规范制定、版本升级和代码复用。
摘要由CSDN通过智能技术生成

目录

1 接口的概述

2 接口的书写格式

3 接口的特点

4 接口成员特点

5 类与类、类与接口、接口与接口之间的关系

6 成员方法的介绍

6.1抽象方法

6.2 默认方法

6.2.1 书写格式

6.2.2 调用方式

6.3 静态方法

6.3.1 书写格式

6.3.2 调用方式

6.4 私有方法

6.4.1 书写格式

6.4.2 调用方法

7 使用思路


1 接口的概述

接口是一种规范,是一种规则。

通俗的讲就是,接口就是相当于把房子的框架搭好了,后续过程只要往添加各个部分的东西就好了。Java中则是 通过实现类去实现接口中的定以好的功能体。

2 接口的书写格式

//注意:有继承的时候,接口要写在继承的后面;
public interface 接口名 {


}

3 接口的特点

  • 接口名用 interface 修饰
  • 实现类用implements 修饰
public class 类名 implements 接口名{
}
  • 接口不能实例化
  • 接口的实现类要么重写接口的所有抽象方法,要么是一个借口或者是抽象类
  • 接口关系中,实现类可以对接口进行单实现,也可以多实现

4 接口成员特点

  • 构造方法:没有
  • 成员变量:虚拟机默认添加public static final 修饰,注意一点是变量必须要赋值
  • 成员方法:JDK8以前只有抽象方法, JDK8 加入 静态方法和默认方法, JDK9 加入了私有方法

5 类与类、类与接口、接口与接口之间的关系

  • 类与类:
    • 继承关系:单继承,多层继承
  • 类与接口:
    • 实现关系:可以单实现,也可以多实现,也可以有继承的时候进行实现多个接口
  • 接口与接口:
    • 继承关系:可以单继承,也可以多继承

6 成员方法的介绍

6.1抽象方法

抽象方法实现类是要全部重写的

 public void eat() ;

6.2 默认方法

JDK8 出现的方法,用default修饰

6.2.1 书写格式

如下

//在接口中
public default void 方法名(){}

public default 返回值类型 方法名(){
        return 返回值;
    }

注意事项:

        对于默认方法,实现类可以重写也可以不重写,重写的时候要去掉default关键字。

        在接口中默认方法的修饰词,public 可以省略, default不能省略。

存在的意义:

        解决接口升级问题,提高拓展性。

6.2.2 调用方式

通过实现类调用

//在其他非抽象类中
类名 对象名 = new 类名();
对象名.方法名();

注意:

  • 如果实现了多个接口 中 有相同的 默认方法, 这时候实现类中必须重写方法
  • 接口中的default方法 不能用 接口名.方法名的方式调用, 也就是只能通过    创建实现类对象  然后用对象调用

6.3 静态方法

JDK8 出现的方法,用static修饰

6.3.1 书写格式

//在接口中
public static void 方法名(){}

public static 返回值类型 方法名(){
        return 返回值;
    }

6.3.2 调用方式

//在其他非抽象类中
接口名.方法名();

注意事项:        

  • 接口中的静态方法只能通过接口名调用, 不能通过类 和对象名调用

  • public 可以省略, static 不能省略

  • 接口中的static 不能被重写, 也就是说,静态方法和 实现类没有任何关系

6.4 私有方法

6.4.1 书写格式

//接口中
private 返回值类型 方法名(){}

private static 返回值类型 方法名(){}

6.4.2 调用方法

//在接口中
方法名();

三种方法对比:

方法调用方式
default 默认方法在其他类创建实现类的对象调用,给实现类用
static 静态方法只能通过接口名调用,专为给其他类用的
private 私有方法只能接口内部使用,专为给接口自己用的

7 使用思路

  • 如果一个类中的方法都是抽象方法就可以定义为接口

  • 接口更新 时不想 修改每个类 , 这是可以 加入 有方法体的默认方法

  • 希望调用方式简洁的 可以使用静态方法(因为静态方法是 接口名直接调用的) ( 需要去掉 default 关键字)

  • 接口中有大量的私有方法可以考虑抽取出 private的私有方法 ( 需要去掉 default 关键字 )

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值