Абстрактный тип данных (ADT) представляет собой теоретический набор спецификаций набора данных и набора операций, которые могут выполняться для данных в наборе. Тип данных называется абстрактным, если он не зависит от различных конкретных реализаций.
скажем, Integer поддерживает операции сложения, умножения, деления.
Эти операции не будут работать с данными String, поскольку они не могут поддерживать multipication.hence Integer не является ADT.
теперь вы получите точку,
Если ваши операции над типами данных не заботятся о типе данных, это называется Abstract Data Structure.eg Stack, list, queue ... здесь эти вещи поддерживают операции типа push (), pop (), add (), delete() Not заботясь о том, что мы нажимаем, поп, удаляем.
Здесь, в зависимости от типа реализации (List, Stack, Queue), мы решаем, как управлять этими ADT.
Почему Stack является абстрактным типом данных?
`Stack s = new Stack<>();
List l = new LinkedList<>();
s.push(45);
s.push("str");
//s.push("String");
if(s.peek().equals(45)){
System.out.println("Treu");
}`
Я не думаю, что нам нужно больше объяснений.