Java的接口
Java的接口
一、基本概念
Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。
两种含义:一,Java接口,Java语言中存在的结构,有特定的语法和结构;二,一个类所具有的方法的特征集合,是一种逻辑上的抽象。前者叫做“Java接口”,后者叫做“接口”。
接口通常以interface来声明。
二、接口的特点
- 接口中的每一个方法都是隐式抽象的,隐式的指定 public abstract(且用其他的修饰符会报错)
- 接口可以含有变量 ,但都被隐式的指定 public static final变量(且用其他的修饰符会报错)声明时不需要abstract关键字。
- 接口的方法只能被类实现,不能被接口实现
- 接口是隐式抽象的,当声明一个接口的时候,不必使用abstract关键字。
- 接口中的方法都是公有的。
三、类与接口的相似点
-
一个接口可以有很多个方法
-
接口文件保存在 .java 结尾的文件中,文件名使用接口名。
-
接口的字节码文件保存在 .class 结尾的文件中。
-
接口相应的字节码文件必须在与包名称相匹配的目录结构中。
(本段转载https://www.runoob.com/java/java-interfaces.html)
四、类与接口的区别
-
接口可以被多继承,类只能单继承
-
接口不可以被实例化
-
接口没有成员变量(除了static final)
-
接口不是被类继承,而是被类实现
-
接口的所有方法都要是抽象方法
五、抽象类与接口的区别
- 抽象类的方法可以有方法体,接口不能
- 一个类只能继承一个抽象类,而一个抽象类可以实现多个接口
- 抽象类中可以有各种成员变量,而接口只能是public static final类型
六、接口的Java声明实例
package abstract002;
public interface Jump { // 接口使用interface声明
void jump(); //方法只需要返回值和方法名,无需方法体(也不可以加方法体)
} //可以是任何方法,也可以有多个方法
七、接口的实现
借用上面的接口声明,用类实现这个接口
package abstract002;
public class Person implements Jump{
//重写接口中的方法
@Override
public void jump() {
System.out.println("人可以跳高了!");
}
public static void main(String[] args) {
//实例化Person,创建对象
Person person = new Person();
person.jump(); //实现了接口中的方法
}
}
//输出结果:
// 人可以跳高了
实现接口时的注意点:
-
重写接口的方法时,方法名和返回值要和接口的方法保持一致(返回值要兼容)
-
接口的继承和类的继承相似
-
一个类只能单继承,但是可以实现多个接口
-
类在实现接口的方法时,不能抛出强制性异常,只能在接口中或者继承该接口的抽象类中抛出该强制性异常
八、接口的继承
接口可以被继承,和类的继承类似,使用extends关键字继承
如果实现接口的类是抽象类,那就没必要实现该接口的方法
九、结语
本文在创作过程中借鉴了转载https://www.runoob.com/java/java-interfaces.html)
同时接口的基本概念来自百度百科
本文是本人在学习过程中的笔记分享,欢迎大家指正批评,同时也希望能够帮助到需要的人!