由于在Java中实现接口的类必须定义接口中的每个方法以避免被声明为抽象,所以我想知道以下几点:Hashtable是否实现Map接口中的每个方法?
当我创建一个程序来实例化一个Hashtable对象时,为什么我不需要在Map界面中定义每个方法?我没有明确定义的方法是否自动创建为“存根”?
由于在Java中实现接口的类必须定义接口中的每个方法以避免被声明为抽象,所以我想知道以下几点:Hashtable是否实现Map接口中的每个方法?
当我创建一个程序来实例化一个Hashtable对象时,为什么我不需要在Map界面中定义每个方法?我没有明确定义的方法是否自动创建为“存根”?
你正在创建从Hashtable
类的对象,它已经实现了所有必要的methods.You不创建一个类,但是从该类的对象。 如果你创建了一个实现Map
类,编译器会要求你实现所有必要的方法。
是否哈希表实现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
。
很抱歉,但我觉得你失去的东西在这里非常重要。当你临时对象时,你不**执行任何事情。你只需要创建一个** **,它是**'Map'(**就是实现它的方法)。 –
作为一个侧面说明,Hashtable已经过时,您应该更喜欢HashMap。 – assylias