¿Qué hace que un tipo sea diferente de una clase y viceversa?
(En el sentido general y agnóstico del lenguaje)
¿Qué hace que un tipo sea diferente de una clase y viceversa?
(En el sentido general y agnóstico del lenguaje)
La siguiente respuesta es del libro de Gof (Patrones de Diseño)
La clase de un objeto define cómo se implementa el objeto. La clase define el estado interno del objeto y la implementación de sus operaciones.
En contraste, el tipo de un objeto solo se refiere a su interfaz, un conjunto de solicitudes a las que puede responder.
Un objeto puede tener muchos tipos, y objetos de diferentes clases pueden tener el mismo tipo.
//ejemplo en c++
template
const T & max(T const &a,T const &b)
{
return a>b?a:b; //> se utiliza para la comparación del tipo
}
La función max requiere un tipo con operación > con su propio tipo como una de sus interfaces, cualquier clase que cumpla con el requisito anterior puede ser utilizada para generar una función max específica para esa clase o tipo primitivo.
El tipo es el término general para todas las plantillas o conceptos de objeto disponibles. Una clase es una de esas plantillas de objeto. Lo mismo ocurre con el tipo de estructura, el tipo Integer, el tipo de interfaz, etc. Todos estos son tipos
Si quieres, puedes verlo de esta manera: Un tipo es el concepto principal. Todos los demás conceptos: Clase, Interfaz, Estructura, Integer, etc heredan de este concepto, es decir, son tipos
El tipo contiene la descripción de los datos (es decir, propiedades, operaciones, etc.),
La Clase es un tipo específico: es una plantilla para crear instancias de objetos.
Estrictamente hablando, la clase es un concepto especial, puede verse como un paquete que contiene un subconjunto de metadatos que describen algunos aspectos de un objeto.
Por ejemplo, en C# puedes encontrar interfaces y clases. Ambas son tipos, pero la interfaz solo puede definir un contrato y no puede ser instanciada a diferencia de las clases.
En pocas palabras, clase es un tipo especializado utilizado para encapsular las propiedades y el comportamiento de un objeto.
Wikipedia te puede dar una respuesta más completa:
Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.