概念
物理接口
指的是两个硬件设备之间的连接方式。硬件接口既包括物理上的接口,比如我们所以说的USB接口
Java接口
在Java中,接口表示一种规范/约束/要求实现者必须遵循该规范:用来约束使用者应该怎么做
规范和实现相分离的好处
主板上提供了USB插槽,只要一个遵循了USB规范的鼠标,就可以插入USB插槽,并与主板正常通信。至于这个鼠标是谁生产的,内部是如何实现的,主板都不需要关心(只要遵循了USB规范就可以插在主板上使用)。当鼠标坏了的时候,我主板不会坏
Java接口定义
概念
Java接口也是表示一种规范,使用抽象方法来去定义一组功能,实现者必须给提供方法的实现。
接口定义
interface 接口名称 { }
接口当中的注意点
- 接口是没有构造器,接口是不能创建对象。
- 接口当中定义变量,都是全局的静态常量。
- 接口当中定义的方法都是公共的抽象的方法。
- 接口是可以继承,它是可多继承。interface 接口名称 extends 继承的接口名, 继承的接口名
接口实现
格式
类名 extends 其它的类 (只能继承一个类)implements 其它的接口(接口可以实现多个)
// 爬行动物规范 interface Iwalkable { public abstract void walk(); } // 水生动物 interface Iswimable { void swim(); } // 两栖动物 interface Iamphibiousable extends Iwalkable, Iswimable { }
class Animal { String name; String Color; } // Cat实现了Iwalkable接口 // 实现关系有时候也称它是继承关系 class Cat extends Animal implements Iwalkable,Iswimable{ // 覆盖的时候,子类的方法权限要比父类大,或者一样大,不能比它小 public void walk() { System.out.println("走猫步"); } public void swim() { } }
接口与抽象类区别
相同点
- 都是被其它类实现
- 都不能实例化
- 都可以定义抽象方法,定义的抽象方法子类都必须得要覆盖
不同点
- 接口是没有构造器,抽象类当中是有构造器
- 抽象类可以包含普通方法和抽象方法,接口当中只能有抽象方法,不能有普通方法(带有方法体)
- 接口当中默认成员变量,要有初始值,都是静态的
- 方法:接口当中默认方法 public abstract 方法名;抽象类、默认的权限
面向接口编程
概述
把实现类对象赋值给接口类型的变量,多态的好处:屏蔽了不同类之间实现差异,从而达到通用编程。
接口多态
把实现类赋值给接口运行时,运行的仍是实现类