0%

接口

概念

物理接口

指的是两个硬件设备之间的连接方式。硬件接口既包括物理上的接口,比如我们所以说的USB接口

Java接口

在Java中,接口表示一种规范/约束/要求实现者必须遵循该规范:用来约束使用者应该怎么做

规范和实现相分离的好处

主板上提供了USB插槽,只要一个遵循了USB规范的鼠标,就可以插入USB插槽,并与主板正常通信。至于这个鼠标是谁生产的,内部是如何实现的,主板都不需要关心(只要遵循了USB规范就可以插在主板上使用)。当鼠标坏了的时候,我主板不会坏

Java接口定义

概念

Java接口也是表示一种规范,使用抽象方法来去定义一组功能,实现者必须给提供方法的实现。

接口定义

1
2
3
interface 接口名称 {

}

接口当中的注意点

  1. 接口是没有构造器,接口是不能创建对象。
  2. 接口当中定义变量,都是全局的静态常量。
  3. 接口当中定义的方法都是公共的抽象的方法。
  4. 接口是可以继承,它是可多继承。interface 接口名称 extends 继承的接口名, 继承的接口名

接口实现

格式

1
类名 extends 其它的类 (只能继承一个类)implements 其它的接口(接口可以实现多个)

1
2
3
4
5
6
7
8
9
10
11
12
// 爬行动物规范
interface Iwalkable {
public abstract void walk();
}
// 水生动物
interface Iswimable {
void swim();
}
// 两栖动物
interface Iamphibiousable extends Iwalkable, Iswimable {

}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Animal {
String name;
String Color;
}

// Cat实现了Iwalkable接口
// 实现关系有时候也称它是继承关系
class Cat extends Animal implements Iwalkable,Iswimable{
// 覆盖的时候,子类的方法权限要比父类大,或者一样大,不能比它小
public void walk() {
System.out.println("走猫步");
}
public void swim() {

}
}

接口与抽象类区别

相同点

  1. 都是被其它类实现
  2. 都不能实例化
  3. 都可以定义抽象方法,定义的抽象方法子类都必须得要覆盖

不同点

  1. 接口是没有构造器,抽象类当中是有构造器
  2. 抽象类可以包含普通方法和抽象方法,接口当中只能有抽象方法,不能有普通方法(带有方法体)
  3. 接口当中默认成员变量,要有初始值,都是静态的
  4. 方法:接口当中默认方法 public abstract 方法名;抽象类、默认的权限

面向接口编程

概述

把实现类对象赋值给接口类型的变量,多态的好处:屏蔽了不同类之间实现差异,从而达到通用编程。

接口多态

把实现类赋值给接口运行时,运行的仍是实现类

↓赏一个鸡腿... 要不,半个也行↓