Difference between array and abstract data types
Arrays aren't abstract data types since their arrangement in the physical memory of a computer is an essential feature of their definition and abstract data types abstract from all details of implementation on a computer. However, we can discuss arrays in a "semi-abstract" fashion which abstracts some implementation details. Definition above abstracts away the details about how elements are stored in contiguous locations (which indeed does vary somewhat among languages). Additionally, arrays are typically types in procedural programming languages, so they are treated such as realizations of abstract data types even though they are really not.