一.定义接口
二.使用接口
三.将接口作为类型使用
四.重写接口
1.在 Java 程序设计语言中,接口是一个引用类型,与类相似,所以可以在程序中定义并使用一个接口
类型的变量。
在接口中只能包含有常量、方法签名和嵌套类型,它没有构造器。在接口中声明的方法,没有方法
体。因为接口没有构造器,所以它不能被实例化,它只能被类所实现或者被另外的接口所继承。
2.Java中可以使用关键字 class,interface,implements。对于interface
后跟接口的名称。接口的名称同样要遵循 Java 标识符命名规则。
3.怎么使用一个接口?
(1)接口是要被类来实现的。所谓接口的实现,实际上就是要实现接口中声明的方法。
(2)在一个类的方法名后面,使用关键字implements,后跟接口名称,用以指明该类所实现的接口。
(3)如果一个类实现一个接口,那么它必须实现该接口中所有的方法。
4.接口的继承
接口支持多继承
类只支持单继承
5.实现多个接口
一个类可以实现多个接口,这时需要在关键字implements后跟接口名称列表。
在 Java 中规定,一个类虽然只能继承自一个父类,但它可以实现多个接口。当实现多个接口时,对象可以同时具有多个类型:
(1)自身所属类的类型。
(2)其所实现的所有接口的类型。
6.接口的声明
(1)修饰符:可选,用于指定接口的访问权限,可选值为 public。如果省略,则使用默认的访问权
限,既只能在当前的软件包中使用。换句话说,声明接口时,关键字 interface 前面要么是修饰
符 public,要么什么都没有,而不能使用 protected 或 private 关键字。
(2)interface:必选,定义接口的关键字。
(3)接口名称:必选,用于指定接口的名称。接口名必须是合法的 Java 标识符。一般情况下,要求
接口名称的首字母大写。
(4)extends 父接口名称列表:可选,用于指定该接口继承自哪个父口。当使用 extends 关键字时,父接口名称为必选参数。接口可以是多继承的,既一个接口可以有任意多个父接口。在接口的声明中,包括有其所有父接口的一个列表,用逗号分隔。
7.实现接口
要声明一个实现接口的类,需要在类的声明中使用 implements 短语。一个类可以实现多个接口,所以 implements 关键字后面要跟一个被类实现的接口列表,用逗号分隔符分隔。
8.实现多个接口的时的常量和方法冲突问题
在 Java 中,每个类实现多个接口,每个接口使用逗号分隔符分隔。这时就有可能出现常量或方法名冲突的情况。
例如,一个类实现两个接口,两个接口中都声明了相同名称的常量或相同名称的方法,那么在实现这两个接口的类中,引用常量或实现方法时,就不明确是哪个接口中的。要解决这类冲突问题时,如果是常量冲突,则需要在类中使用全限定名(接口名称.常量名称)明确指定常量所属的接口。如果是方法冲突,则只需要实现一个方法就可以了。
9.将接口当作类型来使用
当定义一个新的接口时,就是定义一个新的引用数据类型。凡是在任何能够使用其他数据类型名称的地方,也可以使用接口名称。如同其他数据类型一样,可以定义一个接口类型的引用变量。
如果定义一个接口类型的引用变量,那么,赋给这个变量的任何对象就必须是实现这个接口的类的一个实例。例如,在下面的示例方法中,用来在两个对象中查找最大的那个对象。
10.接口的改写
一个接口被声明以后,有可能因为某种原因,需要改变接口中声明的方法(如增加新的方法、改变方法体的实现等)。
总的来说,定义接口需要使用关键字 interface,在类中实现接口需要使用关键implements。
当一个对象实现某个接口时,它既可以是自身类(或超类)的类型,也可以是一个该接口类型