1.2. Cada objeto tiene una interfaz
Los objetos son únicos, no tiene sentido tenerlos por duplicado. Sin embargo, sí es importante considerar las características y comportamientos comunes de estos: lo que les hace pertenecientes a una misma clase. Esta idea se uso incluso en el primer lenguaje orientado a objetos, Simula-67, con la palabra reservada class.
Simula, como su nombre lo indica, fue creado para desarrollar simulaciones, como el clásico "problema del cajero". Aquí se tiene un grupo de cajeros, clientes, cuentas, transacciones y unidades de moneda (es decir, un montón de objetos). Éstos objetos pueden agruparse en "clases de objetos", y de allí proviene la palabra reservada class.
Crear tipos de datos abstractos (clases) es un concepto fundamental de la POO. Éstos trabajan como tipos de datos predefinidos: así es posible crear variables de un tipo (los llamados objetos o instancias), y manipular estas variables (mediante el envío de mensajes o peticiones).
Cada objeto pertenece a una clase en particular, lo que define sus características y comportamientos.
Prácticamente todos los lenguajes de programación orientados a objetos usan la palabra reservada class, y por lo general, los que no, usan la palabra reservada type; por lo que podemos relacionar dichos términos entre sí.
** Hay quienes suelen hacer distinción, alegando que type determina la interfaz; mientras que class es una implementación particular de dicha interfaz.