接口的基础知识

这里写图片描述

接口与类;接口与类在以下方面相似
 接口可以有任意数量的方法;
 接口保存为以”.java”为后缀名的文件,接口名需要与文件名匹配;
 接口编译后是后缀名为”.class”的字节码文件;
 在包中的接口,其相应的字节码文件必须放置在和包名称相匹配的一个目录结构中;
接口与类之间也有几个不同之处;
 接口不能被实例化;
 接口不包含任何构造器;
 接口中的所有方法都是抽象的;
 接口中不能包含实例成员变量。唯一可以出现在接口中的成员变量必须是同时声明为 static和final;
 接口不能被一个类继承,只能被一个类来实现;
 一个接口能够继承多个接口。
接口不是类。虽然编写接口类似于编写一个类,但它们是两个不同的概念。类描述了对象的属性和行为,接口包含的是一个类需要实现的行为。

接口声明;在Java语言中,关键字interface用于声明接口。
接口具有下列性质; 接口默认是抽象的。在声明接口时,不需要使用关键字abstract;
 接口中的每一个方法默认也是抽象的,所以也不需要关键字abstract;
 接口中的方法默认访问级别是public。 在编写接口的时候通常用public关键字,但是如果我们不显式地将接口中的方法声明为public,它仍然将是public的。

接口实现;类实现接口时有两个选择,  实现接口中定义的所有方法,  声明自己为抽象类。

接口的应用;接口可以用于暴露类的行为,允许类的用户通过接口的实现类来使用接口中的方法;
 接口可以用于强制一个类具有某些行为。
在接口中声明成员变量;接口可以包含成员变量,但是成员变量只能用static和final关键字共同来修饰。由于接口不能被实例化,所以成员变量必须被声明为static,而声明为final是为了程序的可靠性。
继承多个接口;我们知道,Java语言不允许多继承,一个类只能继承一个父类。然而,接口不是类,它可以继承多个父接口。在接口多继承中,关键字extends只使用一次,多个父接口之间用逗号分隔。

接口与抽象类的区别;
 接口中只能包含抽象方法;而抽象类中可以包含普通方法。
 接口中不能定义静态方法;而抽象类可以定义静态方法。
 接口中只能定义静态常量属性,不能定义普通属性;而抽象类既可以定义普通属性,也可以定义静态常量属性。
 接口不包含构造器;而抽象类中可以包含构造器。抽象类中的构造器并不是用于创建对象,而是让子类调用这些构造器来完成属于抽象类的初始化工作。
 接口中不包含初始化块;而抽象类可以包含初始化块
 一个类最多有一个直接父类,包括抽象类;但是一个类可以直接实现多个接口,通过实现多个接口来弥补Java单继承的不足。

JDK1.8以后,在接口中可以使用default关键字,声明非抽象方法,但是真正的访问修饰符依旧还是public,可以说它现在就是一个声明关键字而不是访问修饰符;接口中可以使用static声明方法,但必须要有方法体的实现{ }。

猜你喜欢

转载自blog.csdn.net/qq_43039291/article/details/82692088