疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Java接口的相关知识总结


 

   

  我们对接口的初期理解,其实可以认为是一个特殊的抽象类。当抽象类中的方法都是抽象的时候,那么该类可以通过接口的形式来进行表示。

  定义接口时候用interface关键字,切里面内容必须全部抽象。

  在接口定义时,接口的格式特点有哪些呢?

  1.接口中常见定义:常量以及抽象方法。

  2.接口中的成员都有固定修饰符,如果定义不完全,系统会默认自动补全修饰符。

  interface Inter

  {

  public static final int NUM = 3;

  public abstract void show();

  }

  在接口中,常见的常量修饰符为public static final,方法修饰符为public abstract。而且,在接口中的成员的修饰符都是public权限,所以子类在进行实例化时,复写定义的权限必须也要大于等于public权限才可以,否则会报错。

  类在进行接口的实例化时,所用的关键字为implements,格式为class B implements A,在叫法上有点区别,对于接口的继承叫实现, 并不叫继承。也就是说类与类之间是继承关系,类与接口之间是实现关系。

  而且接口是不可以创建对象的,因为有抽象方法。它是需要被子类实现,子类对接口中的抽象方法全都覆盖后,子类才可以实例化。否则子类还是一个抽象类。

  //定义一个接口的子类去对Inter接口中的方法进行覆盖。

  class NewInter implements Inter

  {

  public void show()//覆盖接口中方法,原接口Inter没写,只是举个例子

  {

  System.out.println("show run");

  }

  }

  接口可以被类多实现,也是对多继承不支持的转换形式,这就是多继承机制在Java语言中被改良后的结果。也就是说一个类可以实现多个接口。

  interface A

  {

  void show();

  }

  interface B

  {

  void show();

  }

  class C implements A,B

  {

  public void show()

  {

  System.out.println("show run");

  }

  }

  在接口与接口之间,是可以继承的,并且支持多继承,举例如下:

  interface A

  {

  void methodA();

  }

  interface B

  {

  void methodB();

  }

  interface C extends A,B

  {

  }

  一个类在继承一个类的同时还可以实现多个接口。

  class A

  {

  public void show(){}

  }

  interface B

  {

  public void show();

  }

  //接口出现避免了单继承的局限性。

  class C extends A implements B

  {

  }

  简单来总结下来就是:

  1.类与类之间是继承,而且是单继承。

  2.类与接口之间是实现,而且可以多实现。

  3.接口与接口之间是继承关系,而且可以多继承。

  通过对接口之间的相互关系以及对类和接口的关系之间的相互阐述和理解,让我更清楚的认识到了接口的特性.