Единственно правильный ответ - первый.
Вы можете следовать процедуре исключения: 2 не обязательно должно быть правдой, поскольку существуют неизменные типы данных, как уже указывал Морис Перри. 3 не обязательно должно быть истинным по той же причине: неизменяемые типы не имеют методов изменения состояния.
Кроме того, по определению ADT строго определяется значениями, которые он может содержать, операциями, которые он поддерживает, и свойствами / инварианты этих. Все остальное (структура данных, содержащая данные, реализация метода) действительно абстрагировано далеко от определения.
Вы можете проверить this , this , это и это , если вы заинтересованы в дальнейшем чтении по этому вопросу.