List是接口,能够有序的存放数据,而ArrayList是以数组形式实现List的实现类。
Map与HashMap也是这种关系,HashMap是Map的实现类,Map能够根据对象查
找对象,而HashMap能够利用对象的hashcode更快速的查找。
由此能引出接口回调的概念:
可以把使用某一接口的类创建的对象的引用赋给该接口声明的接口变量中,那么该接口变量就可以调用被类实现的接口的方法,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。
借用一段代码来解释接口回调:
interface Msg{
void showMessage();
}
class NbMsg implements Msg{
public void showMessage() {
System.out.println("123456");
}
}
class CahrMsg implements Msg{
public void showMessage() {
System.out.println("abcdef");
}
}
public class test {
private Msg msg;
public void show() {
System.out.println("处理一些东西");
msg.showMessage();
}
public void setMsg(Msg msg) {
this.msg = msg;
}
public static void main(String[] args) {
test a = new test();
a.setMsg(new CahrMsg());
a.show();
a.setMsg(new NbMsg());
a.show();
}
}
结果是:
处理一些东西
abcdef
处理一些东西
123456