Java基础知识——接口

本文最后更新于:2023-03-13, 23:48:49

1、抽象类和抽象方法

只有声明而没有方法体的方法为抽象方法,包含一个或多个抽象方法的类为抽象类(可以有具体实现的方法),抽象类和抽象方法都要用abstract关键字声明。抽象类不能实例化,但可以创建引用。抽象类的子类必须为父类中的所有抽象方法提供定义,否则子类也是抽象类。

2、接口

接口中的方法都是抽象方法,创建一个接口要用interface关键字代替class,并且里面的方法不需要abstract关键字。接口可以包含域,但这些域隐式地是static和final的。要让一个类遵循某个特定接口(或者是一组接口),需要使用implements关键字,它表示“interface只是它的外貌,现在我要声明它是如何工作的”。

一旦实现某个接口,其实现就是一个普通类(特殊情况,抽象类也可以实现接口)。

接口中的方法可以显式地声明为public,即使不这么做,它们也是public的。当实现一个接口时,所有实现方法必须显式的声明为public,否则编译不通过。

3、完全解耦

只要一个方法操作的是类而非接口,那么你只能使用这个类及其子类。如果你想要将这个方法应用于不在此继承结构中的某个类,那么你就会触霉头了。接口在很大程度上放宽这种限制,因此,它使得我们可以编写可复用性更好的代码。

4、Java中的多重继承

C++中有多重继承这一功能,即一个类可以同时继承自多个类。Java中不能这样做,但是它可以通过实现多个接口来达到相同的目的。

5、通过继承来扩展接口

一个接口可以继承自一个或者多个接口。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!