接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。
抽象类
在讲接口前,我们先来了解一下抽象类。什么是抽象类
抽象类也是一个类,只是在定义时要用关键字abstract修饰。什么时候用抽象类
- 有的时候,父类只知道其子类包含哪些方法,但并不知道这些方法具体是怎么实现的。
- 从多个具有相同特征的类中抽象出一个抽象类,作为子类的模板,限制子类的格式,避免子类设计的随意性。也就是说,抽象类限制了子类必须具有某些方法,但是并不限制这些方法要怎么实现,子类可以根据需要具体实现,也必须要实现这些方法。
使用规则
- 抽象类用abstract关键字修饰,格式为
public abstract class className{...}
- 抽象类不能被实例化,只有抽象类的非抽象子类可以创建对象,因此,抽象类必须被继承。
- 抽象类中不一定有抽象方法,也可以包含普通方法。
- 有抽象方法的类必定是抽象类。
- 抽象类中的抽象方法只要声明,不需要给出方法的具体实现。
- 构造方法和类方法(用static修饰的方法)不能声明为抽象方法。
- 抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。
接口
- 接口并不是类,编写接口的方式和类很相似,只不过是用关键字interface替换class,但是它们属于不同的概念。类描述对象的属性和方法。接口只规定子类必须包含某些方法,但不需要实现这些方法。除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。
- 接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。
- 在 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/>