divide专辑购买:关于JAVA接口的问题

来源:百度文库 编辑:高校问答 时间:2024/04/30 00:21:18
我们知道JAVA的接口都是一些空的方法,继承时来实现里面的方法,可是现在我有一个MAP类型的变量,它能用MAP接口中的方法,比如keySet();接口里的方法不是没有实现吗?为什么可以用呢?谢谢
代码
Map map = request.getParameterMap();
Set set = map.keySet();

是不是类似下面代码啊!?

import java.util.HashMap;
import java.util.Map;
public class Test20060630_02 {

public static void main(String[] args) {
/* First */
Map map = new HashMap();
map.keySet();

/* Second */
Map map2 = null;
map2.keySet();
}
}

/*First*/的代码是正确的,而/*Seconde*/的代码编译通过但是运行不了!

Map map = new HashMap();中,HashMap实现了Map接口,并且扩展了Map接口,即增加部分方法,但是在这条声明中,map只能见到Map接口里面的方法。

你的概念有错误,接口是在类的继承中继承时需要实现所有方法,当你声明成一个变量是他就相当于一个类的引用。
你在创建一个新类时implements Map(继承Map接口)后,你就必须实现接口中的方法

为什么接口里的方法不能直接用啊就像上面的那位仁兄说的必须全部实现
就是对其继承进行方法的重写
那不都是为了给那个抽象的方法分配内存空间么!
那一句话
Map map = request.getParameterMap();
不也是这个作用么!
在内存中有了空间不就可以用了。