Java 基础 --- 接口

本文介绍了接口的概念及其在软件设计中的重要性。通过实例说明了接口如何定义通用功能规范,允许不同类实现这些规范以实现多态性和扩展性。此外,还对比了接口与抽象类的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


修饰符 interface 接口名 extends 父接口名列表 {
public static final 常量;
public abstract 方法;
}

  • 修饰符,可选参数,可选值为 public,如省略,则为默认访问权限
  • extends 父接口名列表,可选参数,用于指定要定义的接口继承于哪个父接口。当使用extends关键字时,父接口名为必选参数

1 为什么会有接口(作用)

定义一个规则,只要类(对象)符合这个规则,就可以使用,规则在 Java中,就是 接口
接口就是,把公用的功能抽取出来,谁需要这个功能,谁来实现implements

举例:

不只是狗具有导盲功能,其他动物也有。如果定义为抽象类,那只能单继承,扩展性不好
定义为接口,谁需要这个功能,谁实现它就可以了

interface 导盲{
  public abstract  void  导盲();
}

比如 USB接口,现在 USB接口都是标准化的,可以连接手机,电脑等不同设备,如果单写 电脑USB接口功能,其他设备就没法用,扩展性不强
这里写图片描述

我们可以先开发出 USB接口标准,然后设备厂商实现该标准

 interface USB {   // 操作标准       
     public abstract  void install() ;
     public abstract  void work() ;
 }

在电脑上应用此接口:

class Computer  implements USB {
    public void install() {
      System.out.println("安装电脑驱动程序。") ;
    }
    public void work() {
      System.out.println("电脑与其连接设备进行工作。") ;
    }
}

定义USB设备—手机:

class Phone implements USB {
    public void install() {
           System.out.println("安装手机驱动程序。") ;
     }
     public void work() {
           System.out.println("手机与电脑进行工作。") ;
     }
}

定义USB设备—打印机:

class Print implements USB {
      public void install() {
           System.out.println("安装打印机驱动程序。") ;
      }
      public void work() {
           System.out.println("进行文件打印。") ;
      }
}

2 接口的定义

接口是对抽象类的再次抽象 — 当一个抽象类中的方法,都是抽象的时候,可以将该抽象类用另一种形式表示 — 接口
由此可见,接口其实就是一种特殊的 class, 只不过是换了一种表示方式 interface

// 抽象类中的方法,都是抽象的,可以定义为接口
abstract class AbsDemo{
   abstract void show1();
   abstract void show2();
}
// 接口 --- 接口不过是一种特殊的 class,只不过换了一种表示方式
interface Demo{
   public abstract void show1();
   public abstract void show2();
}

3 接口的特性

接口中的成员(成员常量,成员方法),具有固定的修饰符

1 成员常量:public static final
public static final int NUM = 4;

如果自己不写 *public static final *中的一个或者几个,系统会默认给加上,但是阅读性不好,建议加上

2 成员方法:public abstract
public abstract void show();

抽象方法需要被覆盖,不写 public ,非 public 来覆盖会导致失败。写上,阅读性好,不易出错

由此得出结论:接口中的成员,都是公共的权限

接口示例:

interface Demo{
    public  static final int NUM_PERSON = 100;
    public abstract void method1();
    public abstract void method2();
}

4 接口与抽象类的区别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值