天天看点

Java接口

接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。

抽象类

在讲接口前,我们先来了解一下抽象类。

什么是抽象类

抽象类也是一个类,只是在定义时要用关键字abstract修饰。

什么时候用抽象类

  • 有的时候,父类只知道其子类包含哪些方法,但并不知道这些方法具体是怎么实现的。
  • 从多个具有相同特征的类中抽象出一个抽象类,作为子类的模板,限制子类的格式,避免子类设计的随意性。也就是说,抽象类限制了子类必须具有某些方法,但是并不限制这些方法要怎么实现,子类可以根据需要具体实现,也必须要实现这些方法。

使用规则

  • 抽象类用abstract关键字修饰,格式为

    public abstract class className{...}

  • 抽象类不能被实例化,只有抽象类的非抽象子类可以创建对象,因此,抽象类必须被继承。
  • 抽象类中不一定有抽象方法,也可以包含普通方法。
  • 有抽象方法的类必定是抽象类。
  • 抽象类中的抽象方法只要声明,不需要给出方法的具体实现。
  • 构造方法和类方法(用static修饰的方法)不能声明为抽象方法。
  • 抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。

接口

  1. 接口并不是类,编写接口的方式和类很相似,只不过是用关键字interface替换class,但是它们属于不同的概念。类描述对象的属性和方法。接口只规定子类必须包含某些方法,但不需要实现这些方法。除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。
  2. 接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。
  3. 在 Java 中,接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。

定义接口

public interface 接口名 [extends 父接口1,父接口2,……]{
   零到多个常量的定义;
   零到多个抽象方法的定义;
}

/******************************************************
说明:
1. 实际上在在interface前面还有一个关键字abstract,即使不写,系统也会自动加上,所以一般不写。

2. 接口里面的的属性是常量,即使不声明为常量,系统也会加上public static final的修饰符,使之为常量,一般不自己加。

3. 接口里的方法必须是抽象方法,即使没有用abstract修饰,系统也会自动加上,一般不自己加。

********************************************************/
           

使用接口

接口需要通过类来实现,用关键字implements。我们都知道,Java中的类是单继承的,一个子类只能继承一个父类。而一个类可以实现多个接口,从而对继承进行补充,使继承更加灵活。具体定义格式如下:
public class 类名 [extends 父类] implements 接口1,接口2,…… {

   //如果继承了一个抽象类,则必须实现抽象类中的所有抽象方法;
   //要实现所有接口中的所有方法;
   //如果有继承父类,则必须写在接口前面
}
           
<br/>

***
***

至此,Java面向对象的内容就告一段落了,接下来就是尝试用Java写一写具体的项目。

<br/>