Java接口(interface)的的概念及使用

上次,我们讲了抽象类,不了解抽象类的可以看看我上次写的Java抽象类

在抽象类中,可以包含一个或多个抽象方法;但是在接口(interface)中,所有的方法必须都是抽象的,不能有方法体,它比抽象类更加“抽象”。

接口使用interface关键字来修饰,可以看作是特殊的抽象类,可以指定一个类必须做什么,而不是规定它如何去做。

public interface InterfaceTest {
    int a=10;
    void method1();
    void method2();
}

接口是若干常量和抽象方法的集合,接口就像是特殊的抽象类。但是一个类只能继承一个类,称为“单继承”,为了弥补Java类不能“多继承”,Java引进了接口概念,所以一个类可以实现多个接口。

但接口有其自身的一些特性,如下:

  1. 接口中只能定义抽象方法,这些方法默认是public abstract的,因此在声明方法时可以省略这些修饰符。试图在接口中定义实例变量、非抽象的实例方法以及静态方法,都是非法的。
  2. 接口中没有构造方法,不能被实例化。
  3. 一个接口不实现另一个接口,但可以继承多个其他接口,接口的多继承特点弥补了类的单继承性。

接口在面向对象的Java程序设计中占有举足轻重的地位。事实上在设计阶段最重要的任务之一就是设计出各部分的接,然后通过接口的组合,形成最基本的基本框架结构。

接口的使用

接口的使用与类的使用有些不同。在需要使用类的地方,会直接使用new关键字来构建一个类的实例,但接口不可以这样使用,因为接口不能直接使用 new 关键字来构建实例。

接口必须通过类来实现(implements)它的抽象方法,然后再进行实例化,类实现接口的关键字是implements。

如果一个类不能实现该接口的所有抽象方法,那么这个类必须被定义为抽象类。

不允许创建接口的实例,但是允许定义接口类型的变量,该变量指向了实现接口的实例。

一个类只能继承一个类,但是可以继承多个接口。

实现接口的格式如下:
修饰符 class 类名 extends 父类 implements 多个接口 {
    实现方法

}

接口作为类型使用

接口作为引用类型来使用,任何实现该接口的类的实例都可以存储在该接口类型的变量中,通过这些变量可以访问类中所实现的接口中的方法,Java 运行时系统会动态地确定应该使用哪个类中的方法,实际上是调用相应的实现类的方法。

猜你喜欢

转载自blog.csdn.net/xkfanhua/article/details/80568722
今日推荐