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.面向接口编程:
多态的好处:把实现类对象赋给接口类。屏蔽了不同实现类之间的差异,从而可以做到通信编程。
















