1.接口的关键字:interface
在定义一个接口时,我们需要把public class xxx中的class改成interface,即public interface xxx,这就是就定义了一个接口。
2.接口中定义的方法与常量:
在定义方法时,例如我们定义一个run方法与go方法,我们可以写成public abstract void run();和public abstract void go();但是因为在接口的定义中都是public abstract,因此我们只需要写
void run();和void go();即可。即直接写: 方法类型+方法名(参数类型);即可。
而在定义常量时,因为接口中所有的常量都是public static void final,而final类是无法被继承的,所以我们不经常在接口中定义常量。
3.接口及其实现类,implements关键字:
由于接口仅仅能给我们定义一个方法,无法让我们去实例化(即实现它),因此我们需要再写一个实现类来实现它,而这个实现类的名字就是接口名+Impl,例如
这里的Impl就是implements,而想要实现接口中的类,就需要重写接口中的所有方法
这里我们列举了增删改查为例子,这是接口中的,
这是实现类中的
而要想实现接口,必须要在实现类中重写接口类中的所有方法。
4.接口与继承的不同
接口为多继承,而extend是单继承,例如我们在这里再定义一个TimeService的接口,我们可以在UserService实现类中再继承一个TimeService,只要重写TimeService中的方法即可。
5.接口的作用
(1)接口是一种约束
(2)接口可以定义一些方法让不同的人实现,(都是public abstract)
(3)接口中的常量都是public static final,final关键字无法被继承
(4)接口不能被实例化,因为接口中没有构造方法
(5)implements可以实现多个接口
(6)接口必须要重写里面的所有方法