Java基础:接口
Java基础:接口
接口
-
接口(interface),在 Java 编程语言中是一个抽象类型,是抽象方法的集合,接口通常以 interface 来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法
-
接口关键字 interface ,接口实现关键字 implements
-
区别:
- 普通类:只有具体实现
- 抽象类:有具体实现和规范(抽象方法)
- 接口:只有规范,接口无法自己写方法
-
接口特性:
-
接口中所有定义的方法都是抽象的,默认:public abstract
-
接口中所有定义的属性都是常量,默认:public static final
-
接口中的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法
-
接口与类相似点:
- 一个接口可以有多个方法
- 接口文件保存在 .java 结尾的文件中,文件名使用接口名
- 接口的字节码文件保存在 .class 结尾的文件中
- 接口相应的字节码文件必须在与包名称相匹配的目录结构中
接口与类的区别:
- 接口不能用于实例化对象
- 接口没有构造方法
- 接口中所有的方法必须是抽象方法
- 接口不能包含成员变量,除了 static 和 final 变量
- 接口不是被类继承了,而是要被类实现
- 接口支持多继承
抽象类和接口的区别
- 抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行
- 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的
- 接口中不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法
- 一个类只能继承一个抽象类,而一个类却可以实现多个接口
-
语法:
[可见度] interface 接口名称 [extends 其他的接口名] { // 声明变量 // 抽象方法 }
-
使用示例:
- 接口1:
//interface 定义的关键字,接口都需要有实现类 public interface UserService { //常量 默认:public static final int age = 99; //接口中所有定义的方法其实都是抽象的 默认:public abstract void add(String name); void delete(String name); void update(String name); void query(String name); }
- 接口2:
public interface TimeService { void timer(); }
- 实现类:
//类 可以实现接口 implements 接口 //实现了接口的类,就需要重写接口的方法 //多继承~ 利用接口实现多继承~ public class UserServiceImpl implements UserService,TimeService { @Override public void add(String name) { } @Override public void delete(String name) { } @Override public void update(String name) { } @Override public void query(String name) { } @Override public void timer() { } }
Note:
接口的作用:
1.约束
2.定义一个方法,让不同的人实现
3.方法默认:public abstract
4.常量默认:public static final
5.接口不能被实例化,因为接口中没有构造方法
6.implements可以实现多个接口
7.必须要实现接口中的所有方法
8.接口是隐式抽象的,当声明一个接口的时候,不必使用abstract关键字