接口

        接口的概念

                只明确 “要做什么”(规定方法名称、参数、返回值),完全不定义 “怎么做”(没有具体执行代码),本质是一套统一的行为规范接口是一种引用数据类型

        语法

1.使用 interface 来定义一个接口。接口命名以大写 I 开头。

2.接口中的成员变量 默认时 public static final 的,一般情况下不写。

3.接口中的成员方法 默认时 public abstract 的, 一般情况下不写。

4.接口当中不可以有普通方法。

========================================================================

Java8后,允许在接口中定义一个 default 方法,允许抽象方法可以有具体实现(abstract 允许方法没有具体实现)

6.接口当中的方法如果是 static方法,也可以有具体的实现

7.接口不能通过 new关键字 实例化

8.类与接口通过 implements 实现关系。(作用与父子类继承相似)。

9.接口也可以发生向上转型 和 动态绑定

10.当一个类实现接口中的方法时候,当前类中的方法,不能不加 public。

11.接口中不能有构造方法和代码块

12.接口虽然不是类,但是会产生独立的文件,接口编译完后字节码的后缀格式也是 class。

13.如果类没有实现接口中的所有抽象方法,则类 必须设置为抽象类

14.java8中接口包含 defalt方法

====================================================================

代码

接口测试

1.首先我们创建一个包,并创建一个接口,分别含有打开服务和关闭服务

2.然后new一个Mouse类让类与接口实现关系,并且重写开启,与关闭的方法

3.new一个Key类与接口实现关系,重写打开与关闭方法。

4.new一个Computer类,我们通过这个类实现与key类和Mouse类建立联系

实现多个接口

  在Java中类与类是单继承关系,一个类只能继承一个父类,但却可以实现多个接口;类A继承B后就不能在继承类C了,但类A可以实现接口 I1,I2,I3........;(目的:为了解决类无法多继承);
一个类既可以继承又可以实现接口,并且继承在前,接口在后
我们分别写了,一个动物抽象类当作父类,一个行为“飞”的接口;行为“跑”的接口;行为“游泳”的接口;
并且在 Java 中不支持多继承, 类只能继承一个父类,但可以有多个接口的性质
点击某个类,按住  Ait + Enter可以重写方法

实现多态

继承表示的是 谁属于谁的意思

接口表达的是 谁具有什么行为

我们设计多个接口有什么好处呢?

有了多个接口后,我们就不必局限于类的“共同属性”而是关注这个类是否具有某种行为;

例如:狗,猪,鸟,都可以归为我们的动物类,并且同时具备:飞 || 跑 || 游泳;等行为,我们也可以设计一个机器人类虽然不具备“动物类”的属性,但是具备某些行为

接口间的继承

我们已经知道 我们需要继承时会用到 extends 这个关键字;

接口之间的继承也会用到;

我们看到,当B接口继承了A接口时,Date类与接口实现关系时就需要同时重写接口A和接口B的方法;

我们可以看到 接口C同时继承了 接口A 与 接口B 而,我们在学习类的时候,已经知道Java不支持多继承;这是因为在 接口中 extends 并不是继承的意思;而是“拓展”意为:接口C具备了 B 和 C的功能;接口间的继承相当于把多个接口合并在了一起

总结

        
1. 定义接口(师傅开了一个武馆)

师傅是 “武功掌门人”,他发给徒弟一本武功秘籍,并指定习武规则:

        规则 1:必须学会 武功1 并且能流畅使出;

        规则 2:..................

2. 实现接口(徒弟 向师傅 学习武功)

        徒弟按照 师傅的 规则 学习了武功;

3. 调用接口(观众 找师傅表演 武功)

        观众想看 师傅表演武功,师傅为了 知道神秘,不会直接上场表演,而是指定自己的徒弟表演

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐