Исходя из существующей архитектуры, написанной кем-то, мне нужно расширить мою реализацию.Позвольте мне объяснить пример кода:
interface Configuration{
public String getPID();
public void display();
}
public abstract class BaseConfiguration implements Configuration {
@Override
public String getPID(){
//some code here
}
@Override
public void display(){
//some code here
}
abstract public <T> T clone(Dictionary<String, Object> properties,
Class<T> clazz);
}
public class XMLConfiguration extends BaseConfiguration{
public <T> T clone(Dictionary<String, Object> properties,
Class<T> clazz){
// implementation
}
}
public class ConfigurationAdmin
{
public static Configuration getCondfiguration(){
return new XMLConfiguration();
}
}
Я могу понять, что невозможно вызвать метод clone
из интерфейса.
Configuration conf = ConfigurationAdmin.getConfiguration();
conf.clone(someDictionary, Foo.class) // Gives compilation error
Каков наилучший способвызвать метод клонирования?