1.什么是接口

硬件接口:指两个硬件设备之间的连接方式。硬件接口包括物理接口,还包括逻辑上的数据传输协议

软件接口:程序代码,特殊的类,表现一种规范,具有的n个方法的特征集合

在Java中,接口表示一种规范约束/要求实现者必须遵循该规范(如手机充电接口,USB接口)

接口只是定义了规范,不关心这些类的内部数据和其功能的实现细节。规定类具有接口,不提供实现,增强了系统的可拓展性。维护性

面向接口编程:实现多态的特性。

2.接口的定义:多个抽象类的抽象就叫接口

语法

定义类:[public] class 类名{}
定义接口: [public] interface 接口名{}

3.接口存在的成员

(1)接口中没有构造器推论:接口不能创建对象(new 对象),接口中不能定义普通方法

(2)接口定义的成员变量:实质是全局静态常量。

public final static String  str=“name”

(3)接口中定义的方法都是公共的抽象方法(默认不显示)(void Select())

(4)接口中定义的类都是静态公共类

4.接口的特点

(1)没有构造方法不能实例化

(2)接口只能继承接口,不能继承类,且接口支持多继承(类只有单继承 可以多重继承)

(3)接口里的方法全部都是抽象方法,默认修饰符 public abstract 

(4)接口里的字段全都是全局静态变量,默认修饰符 public static final

(5)接口里的内部类全都是静态的,默认修饰符 public static

类和类之间存在继承关系

类和接口之间存在实现关系关键字(interface)

接口和接口之间实现多继承(implements)

5.接口的实现关系

接口的实现:实现类

接口仅仅是定义事物,没有提供实现,此时要提供类,让该类去实现接口,并覆盖接口中的方法

接口与实现类之间的关系,称为实现关系 用(implements)来表示

类实现接口的语法

[修饰符] class 实现类名 exends 父类 implement 接口1,接口2

 

package HelloWorld;

//爬行动物
interface IWalkable{

	void walk();
	
}
//水生动物
interface ISvimable{
	
}
//两栖动物
interface Amphibiousable extends IWalkable,ISvimable{
	
}
//猫
class cat1 implements IWalkable{
	public void walk() {
		System.out.println("走路");
	}	
}
public class InterfaceDome {
	public static void main(String[] args) {
		IWalkable w = new cat1();
		w.walk();
	
	}
}

6.接口与实现类的区别

相同点

(1)都位于继承的顶端,用于被其他实现或继承

(2)都不能实例化

(3)都可以定义抽象方法,其实现类/子类都必须覆盖这些方法

不同

(1)接口没有构造方法,抽象类有构造方法

(2)抽象类包含普通方法和抽象方法,接口只能包含抽象方法(Java8之前)

(3)一个类只能继承一个直接父类(可能是抽象类),接口是多继承的并且只支持一个类实现多个接口(接口弥补了Java的单继承)

(4)成员变量:接口默认是 public static final ,抽象类是默认包权限

(5)方法:接口默认是 public abstract,抽象类是默认包权限

(6)内部类:接口默认是 public static  ,抽象类是默认包权限

若接口和实现类可以完成相同功能,尽量使用接口,面向接口编程

设计模式:接口和抽象类集合使用(适配器模式)

7.面向接口编程:

多态的好处:把实现类对象赋给接口类。屏蔽了不同实现类之间的差异,从而可以做到通信编程。