I have learned that abstraction is to extract only important parts from the concrete object so far. I learned that model is extracted important parts from a complex system of reality. The concept of modules is abstraction and modeling.
At the same time as Modula, computer scientist Barbara Liskov created a programming language CLU. In the CLU, we used the concept of a “type,” instead of a module. The abstract data type is a set of the data structure and procedures for manipulating it, hiding the details of the implementation of the data structure, and exposing only the procedure of the operation.
In the widely popular programming language Java, the structure for summarizing this data and procedures was called “class.” For example, the component that provides the function of a variable length array is the java.util.Vector class. It is implemented as a class derived from an abstract class named java.util.AbstractList. *34
- *34: In Java, “class-like things that do not have all concrete implementation” exists, which is called an interface. The story of the interface comes out once more in (1.5.1.1) Focus between ‘same’ and ‘different’.