Java的接口

一、基本概念

Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。

两种含义:一,Java接口,Java语言中存在的结构,有特定的语法和结构;二,一个类所具有的方法的特征集合,是一种逻辑上的抽象。前者叫做“Java接口”,后者叫做“接口”。

接口通常以interface来声明。

二、接口的特点

  1. 接口中的每一个方法都是隐式抽象的,隐式的指定 public abstract(且用其他的修饰符会报错)
  2. 接口可以含有变量 ,但都被隐式的指定 public static final变量(且用其他的修饰符会报错)声明时不需要abstract关键字。
  3. 接口的方法只能被类实现,不能被接口实现
  4. 接口是隐式抽象的,当声明一个接口的时候,不必使用abstract关键字。
  5. 接口中的方法都是公有的。

三、类与接口的相似点

  1. 一个接口可以有很多个方法

  2. 接口文件保存在 .java 结尾的文件中,文件名使用接口名。

  3. 接口的字节码文件保存在 .class 结尾的文件中。

  4. 接口相应的字节码文件必须在与包名称相匹配的目录结构中。

    (本段转载https://www.runoob.com/java/java-interfaces.html)

四、类与接口的区别

  1. 接口可以被多继承,类只能单继承

  2. 接口不可以被实例化

  3. 接口没有成员变量(除了static final)

  4. 接口不是被类继承,而是被类实现

  5. 接口的所有方法都要是抽象方法

五、抽象类与接口的区别

  1. 抽象类的方法可以有方法体,接口不能
  2. 一个类只能继承一个抽象类,而一个抽象类可以实现多个接口
  3. 抽象类中可以有各种成员变量,而接口只能是public static final类型

六、接口的Java声明实例

package abstract002;

public interface Jump {	//	接口使用interface声明
    void jump();	//方法只需要返回值和方法名,无需方法体(也不可以加方法体)
}					//可以是任何方法,也可以有多个方法

七、接口的实现

借用上面的接口声明,用类实现这个接口

package abstract002;

public class Person implements Jump{
    //重写接口中的方法
    @Override
    public void jump() {
        System.out.println("人可以跳高了!");
    }

    public static void main(String[] args) {
        //实例化Person,创建对象
        Person person = new Person();
        person.jump();  //实现了接口中的方法
    }
}

//输出结果:
// 人可以跳高了

实现接口时的注意点:

  1. 重写接口的方法时,方法名和返回值要和接口的方法保持一致(返回值要兼容)

  2. 接口的继承和类的继承相似

  3. 一个类只能单继承,但是可以实现多个接口

  4. 类在实现接口的方法时,不能抛出强制性异常,只能在接口中或者继承该接口的抽象类中抛出该强制性异常

八、接口的继承

接口可以被继承,和类的继承类似,使用extends关键字继承

如果实现接口的类是抽象类,那就没必要实现该接口的方法

九、结语

本文在创作过程中借鉴了转载https://www.runoob.com/java/java-interfaces.html)

同时接口的基本概念来自百度百科

本文是本人在学习过程中的笔记分享,欢迎大家指正批评,同时也希望能够帮助到需要的人!

版权声明:本文为xcz-bky原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/xcz-bky/p/14421519.html