接口概念
接口的实例化类似于向上转型。
接口是一种约束、规定。实现该接口的类必须实现接口的所有抽象方法。多个类实现该接口后,该接口还可以声明实现类的对象,然后调用接口的方法,类似于刚开始所讲的向上转型。(注:接口不能实例化)
例如Java库中List是一个接口,ArrayList、LinkedList等实现该接口,之后List可以调用自己的抽象方法
public interface List<E> extends Collection<E> {
int size();
boolean isEmpty();
boolean add(E e);
E remove(int index);
void clear();
}
List list = new ArrayList();
System.out.println(list.getClass());
List list = new LinkedList();
System.out.println(list.getClass());
输出结果
class java.util.ArrayList
class java.util.LinkedList
一个类可以实现多个接口,这种机制可以保证很好的模块化
接口和抽象类的区别
类是单继承的,接口可以同时实现多个。接口是对单继承机制的补充
继承解决的是代码复用性问题,接口的价值在于设计好规范,让其他类取实现
接口也具有多态