Как создать экземпляр абстрактного класса. Вопрос с собеседования
Коллега поделилась историей своего собеседования. Интервьюер задал вопрос по 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
}
};
}
}
Лично я не согласен с его мнением, считаю что таким образом будет получен экземпляр анонимного класса, но не абстрактного. По сути анонимный класс в этом случае - это уже наследник.
Мне интересно узнать любые точки зрения по этому вопросу. Заранее благодарю всех!