有时,必须从几个类中派生出一个子类,继承他们所有的属性和方法名单时java不支持多继承,有了接口就可以的到多继承的效果
有时,必须从几个类中抽取出一些共同的行为特征,而他们之间没有is-a的关系,不仅仅是具有相同的行为特征而已, 如鼠标,键盘,打印机,扫描仪,摄像头,充电器,都有USB连接
接口就是规范,定义的是一组规则,体现了现实世界中“如果你是/要…则必须能….”的思想,继承是一个“是不是”的关系,而接口实现是“能不能”的关系。
接口的本质是契约,标准,规范,就像我们的法律一样
接口(interface)是抽象方法和常量值定义的集合
接口的特点:
用interface来定义
接口中所有的成员变量都默认由public static final修饰的
接口中所有抽象方法都默认是public abstract修饰的
接口中没有构造器
接口采用多继承机制
接口定义举例
定义java类的语法格式:先写extends 后写implements
一个类可以实现多个接口,接口也可以继承其他接口
实现接口的类中必须提供接口中所有方法的具体实现内容,方可实例化,否则仍为抽象类
接口的主要用途就是被实现类实现
与继承关系类似,接口与实现类之间存在多态性
接口和类似并列关系,或者可以理解为一种特殊的类,从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现