您的当前位置:首页正文

4.java 接口

来源:图艺博知识网

java接口#

  • 抽象类型 ,通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。
  • 接口中每一个方法也是隐式抽象的,接口中的方法会被隐式的指定为 public abstract(只能是 public abstract,其他修饰符都会报错)。
  • 接口中可以含有变量,但是接口中的变量会被隐式的指定为 public static final 变量(并且只能是 public,用 private 修饰会报编译错误)。
  • 方法都是公有的;隐式抽象,不必写abstract。
  • 接口中的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法。

其实接口就是一个协议,一个规范。用于解耦。

一般格式:

[可见度] interface 接口名称 [extends 其他的类名] {
    // 声明变量
    // 抽象方法
}

例子:

public interface IUserService {

    public User getUser();

    int FLAG = 1;
}

接口与类的区别:

  • 接口不能用于实例化对象。
  • 接口没有构造方法。
  • 接口中所有的方法必须是抽象方法。
  • 接口不能包含成员变量,除了 static 和 final 变量。
  • 接口不是被类继承了,而是要被类实现。
  • 接口支持多重继承。 public interface Hockey extends Sports, Event

重写接口中声明的方法时,需要注意以下规则:

  • 类在实现接口的方法时,不能抛出强制性异常,只能在接口中,或者继承接口的抽象类中抛出该强制性异常。
  • 类在重写方法时要保持一致的方法名,并且应该保持相同或者相兼容的返回值类型。
  • 如果实现接口的类是抽象类,那么就没必要实现该接口的方法。

标记接口

没有任何方法的接口被称为标记接口

作用:

(1)建立一个公共的父接口

可以使用一个标记接口来建立一组接口的父接口

(2)向一个类添加数据类型

实现标记接口的类不需要定义任何接口方法(因为标记接口根本就没有方法),但是该类通过多态性变成一个接口类型。

@interface

Java用 @interface Annotation{ } 定义一个注解 @Annotation,一个注解是一个类。

参考:

Top