Java 是面向对象的编程语言,对象就是面向对象程序设计的核心。所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念。本文主要介绍Java 面向对象 接口(interface)。

1、Java 接口(interface)

在Java中实现抽象的另一种方法是使用接口(interface)。接口(interface)是抽象方法和常量值的定义的集合。从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。有时必须从几个类中派生出一个子类,继承它们所有的属性和方法。但是,Java不支持多重继承。有了接口,就可以得到多重继承的效果。下面看一下接口使用示例。

例如:

// interface
interface Animal {
  public void eat(); // 接口方法(没有实现)
  public void run(); // 接口方法(没有实现)
}

要访问接口方法,必须实现接口 (有点像继承的),由另一个类使用implements关键字(而不是extends)。接口方法的实现由用implements关键字的类提供:

例如:

public class Main {
  public static void main(String[] args) {
    Cat myCat = new Cat();  // 创建Cat对象
    myCat.eat();
    myCat.sleep();
  }
}
// Interface
interface Animal {
  public void eat();   // 接口方法(没有实现)
  public void sleep(); // 接口方法(没有实现)
}

// Cat 实现 Animal 接口
class Cat implements Animal {
  public void eat() {
    // 这里提供了eat()的实现
    System.out.println("吃鱼");
  }
  public void sleep() {
    // 这里提供了sleep()的实现
    System.out.println("Zzz");
  }
}

注意

1 ) 与抽象类一样,接口不能用于创建对象

2 ) 接口方法没有实现-实现由使用implements关键字类提供

3)在实现接口时,必须重写其所有方法

4)接口中的方法在默认情况下public abstract

5)接口属性默认情况下public static final

6)接口不能包含构造函数(因为它不能用于创建对象)

Java不支持多继承(一个类只能从一个超类继承),使用接口可以实现多继承。但是,这可以通过接口来实现多继承。要实现多个接口,请用逗号将它们分开。

2、实现多个接口(implements)

要实现多个接口,需要用逗号分隔它们:

例如:

public class Main {
  public static void main(String[] args) {
    DemoClass myObj = new DemoClass();
    myObj.myMethod();
    myObj.myOtherMethod();
  }
}
interface FirstInterface {
  public void myMethod(); // 接口方法
}

interface SecondInterface {
  public void myOtherMethod(); // 接口方法
}

class DemoClass implements FirstInterface, SecondInterface {
  public void myMethod() {
    System.out.println("myMethod");
  }
  public void myOtherMethod() {
    System.out.println("myOtherMethod");
  }
}

3、接口和类的区别

1)接口不能用于实例化对象。

2)接口没有构造方法。

3)接口中所有的方法必须是抽象方法。

4)接口不能包含成员变量,除了 static 和 final 变量。

5)接口不是被类继承了,而是要被类实现。

6)接口支持多继承。

推荐文档