2010-11-26 3 views
1

Почему java.sql.Statement интерфейс, а не абстрактный класс? Какой-то высокомерный интервьюер отклонил кандидата, потому что он не знал.Почему java.sql.Statement интерфейс, а не абстрактный класс?

+0

Этот «высокомерный» интервьюер также искал в Интернете и нашел вопрос онлайн и ответ (который он/она не знал вначале). Просто гадать .... – 2010-11-26 13:14:44

ответ

0

Может быть, потому, что автор решил, что не нужно было внедрять какие-либо методы.

10

Потому что нет ничего , которые могут быть предоставлены в качестве реализации по умолчанию, который будет работать с любой базы данных двигателя мир знает.

0

Pretty much Statement - это скелетный класс (интерфейс), чтобы разработчики драйверов баз данных знали, что им нужно реализовать, когда они implements Заявление.

В рамках JDBC APIStatement не может быть абстрактным, поскольку не было каким-либо образом они могли бы иметь «по умолчанию» реализации, которые могут варьироваться всех баз данных.

+0

Немного педантичный, но я бы не описал интерфейс как «класс скелета». Разумеется, абстрактный класс больше похож на скелетный класс? – Jim 2010-11-26 13:19:40

1

Трудно сказать. Они могли бы сделать это манекеном abstract class, который почти ничего не сделал бы. Делая это, он сделает все реальные реализации неспособными расширить какой-либо другой класс. С другой стороны, interface настолько чище.

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