import java.io.*; import java.util.*; interface Foo { String getText(Map attributes) throws IOException; String getText(Properties attributes) throws IOException; } class Bar { void foo(Foo foo, Properties prop) throws IOException { foo.getText(prop); } } abstract class Hashtable<K,V> implements Map<K,V>, Cloneable { } abstract class Properties extends Hashtable<Object,Object> { }