Как создать экземпляр абстрактного класса. Вопрос с собеседования

Коллега поделилась историей своего собеседования. Интервьюер задал вопрос по Java - "Как получить экземпляр абстрактного класса?". Она естественно ответила - "Никак. Нельзя создать объект абстрактного класса". Он с ней не согласился, заявив, что мы можем сделать это с помощью анонимного класса.

По его мнению, в представленном ниже примере, в переменной ac окажется ссылка на экземпляр абстрактного класса AbstractClass, то есть с помощью анонимного класса будет получен экземпляр абстрактного класса.

public abstract class AbstractClass {

    abstract void doSomething();

    public static void main(String[] args) {
        AbstractClass ac = new AbstractClass() {
            @Override
            void doSomething() {
                // TODO Auto-generated method stub
            }
        };
    }
}

Лично я не согласен с его мнением, считаю что таким образом будет получен экземпляр анонимного класса, но не абстрактного. По сути анонимный класс в этом случае - это уже наследник.

Мне интересно узнать любые точки зрения по этому вопросу. Заранее благодарю всех!


Ответы (0 шт):