2013-07-16 54 views
0

由于在Java中实现接口的类必须定义接口中的每个方法以避免被声明为抽象,所以我想知道以下几点:Hashtable是否实现Map接口中的每个方法?

当我创建一个程序来实例化一个Hashtable对象时,为什么我不需要在Map界面中定义每个方法?我没有明确定义的方法是否自动创建为“存根”?

+0

很抱歉,但我觉得你失去的东西在这里非常重要。当你临时对象时,你不**执行任何事情。你只需要创建一个** **,它是**'Map'(**就是实现它的方法)。 –

+0

作为一个侧面说明,Hashtable已经过时,您应该更喜欢HashMap。 – assylias

回答

6

你正在创建从Hashtable类的对象,它已经实现了所有必要的methods.You不创建一个类,但是从该类的对象。 如果你创建了一个实现Map类,编译器会要求你实现所有必要的方法。

2

是否哈希表实现Map接口的每一个方法?

是的。如果你的JavaDoc看一看的Hashtable类已被定义为

public class Hashtable<K,V> 
extends Dictionary<K,V> 
implements Map<K,V>, Cloneable, Serializable 

注意的是,类有被宣布抽象实现地图。因此,它必须并且确实实现了Map接口中定义的所有方法。

当我创建一个程序来实例化一个Hashtable对象时,为什么我不需要在Map接口中定义每个方法?

当您实例化一个对象时,其方法的实现由其类提供。因此,当您实例化一个Hashtable对象时,它将使用Hastable类已提供的实现。

的需要提供一个实现,当你从它实例化一个对象时,创建一个类来。在实例化时,类不能是抽象的,即实现应该已经存在;或者由您提供,或者由JDK提供给Hashtable

相关问题