接口(interface)定义了一种规范,定义了某一批类所需要遵守的规范,不关心这些类里方法的实现细节,只规定这批类里必须提供某些方法。
一个接口可以有多个直接父接口,但接口只能继承接口,不能继承类。
接口里不能包含构造器和初始化块定义。接口里可以包含Field(只能是常量)、方法(只能是抽象实例方法)、内部类(包括内部接口、枚举)定义。接口里的所有成员,包括常量、方法、内部类和枚举类可以省略访问控制修饰符,如果使用访问控制修饰符,则只能用public.
接口里定义的常量Field,系统会自动为这些Field增减static和final两个修饰符。
接口里定义的方法只能是抽象方法,系统会为其自动增加abstract修饰符。接口里不允许定义静态方法。
和类继承相似,子接口扩展某个父接口,将会获得父接口里定义的所有抽象方法、常量Field、内部类和枚举类定义。
接口不能用于创建实例,但接口可以用于声明引用类型变量。当使用接口来声明引用类型变量时,这个引用变量必须引用到其实现类的对象。除此之外,接口的主要用途就是被实现类实现。
一个类实现了一个或多个接口之后,这个类必须完全实现这些接口里定义的全部抽象方法(也就是重写这些抽象方法);否则,该类将保留从父接口那里继承到的抽象方法,该类也必须定义成抽象类。
接口不能显示继承任何类,但所有接口类型的引用变量都可以直接赋给Object类型的引用变量。
疯狂JAVA讲义-接口
最新推荐文章于 2021-12-18 02:41:59 发布