接口(英文:interface),在java编程语言中,接口是一个抽象类型,是抽象方法的集合,通常以interface来声明,一个类通过继承接口的方式,来继承接口的抽象方法。
接口并不是类,编写接口和类很相似,但是他们属于不同的概念。类描述属性和方法。接口则包含类要实现的方法。
接口无法实例化,但是可以被实现,一个实现接口的类,必须实现接口内所有的抽象方法,否则就必须被声明为抽象类
接口定义了一套规范和标准。接口可以约束实现类的行为。
接口的特点:
·接口中所有的方法都是抽象的,都是public修饰、abstract类型,不能存在实现了的方法
·接口中不存在变量,只有常量
·接口里的成员变量,必须是public修饰,static final类型。
·static:静态的
·final:最终的,不能改变的
·接口不能实例化,不能继承类,只能被接口继承或者被类实现
·接口不能含有静态方法(jdk1.8以下不可以)
·接口不是类,没有构造方法
·接口可以实现多继承
·一个类可以实现多个接口
·一个接口可以继承自多个接口
·接口不能继承类
·一个抽象类可以实现多个接口
·一个类既实现接口有又继承抽象类
public interface User {
String COUNTRY ="中国";
void login();
}
![](https://i-blog.csdnimg.cn/blog_migrate/a84e40ea6269d60a3c2350d2e4eb8edf.jpeg)
接口与抽象类的区别:
比较 | 抽象类 | 接口 |
结构 | 抽象方法、普通方法、构造方法、常量、变量 | 抽象方法、全局常量 |
定义 | abstract | interface |
子类 | 通过extends继承 | 通过implement实现 |
限制 | 一个类只能继承一个抽象类 | 一个类可以实现多个接口,弥补java单继承的不足 |
关系 | 一个抽象类可以实现多个接口 | 一个接口不能继承自抽象类,但是可以继承多个接口 |
实例化 | 通过子类进行实例化 | 通过子类进行对象实例化 |
特性 | 这个对象是什么,模板设计模式 | 这个对象能做什么,表示一种标准、规则、能力 |