Java接口(Interface)
1、接口定义
Java 接口的定义方式与类基本相同,不过接口定义使用的关键字是 interface
public interface 接口名{
// 接口体,其中可以包含定义常量和声明方法
}
2、成员特点
- 方法的声明不需要其他修饰符,在接口中声明的方法,将隐式地声明为公有的(public)和抽象的(abstract)。
- 接口没有构造方法,不能被实例化。
- 在 Java 接口中声明的变量其实都是常量,接口中的变量声明,将隐式地声明为 public、static 和 final,即常量,所以接口中定义的变量必须初始化。
3、接口特点
- 接口的成员没有执行体,是由全局常量和公共的抽象方法所组成。
- 接口没有构造方法,不能被实例化。
- 实现接口就要实现接口中的所有的抽象方法。 实现类要么是抽象的,要么实现接口的所有的抽象方法
java的多态性体现在:1,具体类的多态 2,抽象类的多态 3,接口的多态
实现多态:1,继承或者实现 2,有方法的重写 3,有父类(接口)的引用指向子(实现)类的对象
4、实现接口
类实现接口
一个类可以实现一个或多个接口,继承使用 extends 关键字,实现则使用 implements 关键字。
格式如下:
public class class_name [extends superclass_name] [implements interface1_name[, interface2_name…]] {
// 主体
}
- 一个类需要实现多个接口,则多个接口之间以逗号分隔。
- 一个类可以继承一个父类,并同时实现多个接口,implements 部分必须放在 extends 部分之后。
- 一个类实现了一个或多个接口之后,这个类必须完全实现这些接口里所定义的全部抽象方法(也就是重写这些抽象方法);否则,该类将保留从父接口那里继承到的抽象方法,该类也必须定义成抽象类。
接口继承接口
一个接口不能够实现另一个接口,但它可以继承多个其他接口。子接口可以对父接口的方法和常量进行重写。
public interface StudentInterface extends PeopleInterface {
// 接口 StudentInterface 继承 PeopleInterface
int age = 25; // 常量age重写父接口中的age常量
void getInfo(); // 方法getInfo()重写父接口中的getInfo()方法
}
5、抽象类和接口的区别
区别点 | 抽象类 | 接口 |
---|---|---|
定义组成 | 包含抽象方法的类 具体方法 变量 构造方法 | 抽象方法和常量 |
使用 | 子类继承抽象类 | 实现类实现接口 |
关系 | 抽象类实现接口 | 接口不能继承抽象类,可以继承多个接口 |
对象 | 通过抽象类的多态性产生实例对象 | 无 |
局限 | 只能单继承 | 没有 |