2017-02-02 11 views
-1

У меня есть класс ParentImageTransformation по методу getResolution. Теперь у меня есть новый класс ChildImageTransformation с перезаписанным методом getResolution. У меня есть конфигурация, которая говорит мне, если мне нужно использовать перезаписанный метод.Как использовать родительский класс по конфигурации в дочернем классе

Возможно ли создать экземпляр класса ChildImageTransformation, чтобы он использовал правильный метод getResolution по конфигурации?

ответ

3

Самый простой было бы определить его как таковой:

class ChildImageTransformation extends ParentImageTransformation { 
    private boolean useParent; 

    public ChildImageTransformation(boolean useParent) { 
    this.useParent = useParent; 
    } 

    public int getResolution() { 
    if (useParent) { 
     return super.getResolution(); 
    } else { 
     return <something>; 
    } 
    } 
} 

Тогда вы можете создать экземпляр класса и метод будет делегировать суперкласса, если установить логическое значение для true.

+0

Привет, мой вопрос в том, как избежать проверки 'useParent' в методе' getResolution'. Возможно ли создать экземпляр класса, чтобы я мог использовать его для всех возможных методов «из коробки». –

+0

Вы можете передать лямбда в конструктор, который определяет реализацию метода getResolution? –

 Смежные вопросы

  • Нет связанных вопросов^_^