87 votos

¿Cuál es la diferencia entre Tipo y Clase?

¿Qué hace a un tipo diferente de clase y viceversa?

(Independientemetne del lenguaje)

70voto

yesraaj Puntos 12759

La siguiente respuesta es del libro de Gof (Patrones de Diseño)

Los objetos clase define cómo el El objeto se implementa. La clase define el estado interno del objeto y la aplicación de su operaciones.

Por el contrario, un objeto escriba sólo se refiere a su interfaz - la conjunto de solicitudes a las que puede Responde.

Un objeto puede tener muchos tipos, y objeto de diferentes clases puede tienen el mismo tipo.

//example in c++
template<typename T> 
const T & max(T const & a,T const &b)
{
return a>b?a:b;  //> operator of the type is used for comparision
}

La función máxima requiere un tipo con operación > con su propio tipo como una de sus interfaces, cualquier clase que satisfaga el requisito anterior puede utilizarse para generar una función máxima específica para esa clase.

40voto

Eddie Parker Puntos 2522

Siempre pienso en un "tipo" como un término paraguas para "clases" y "primitivos".

int foo; // Type is int, class is nonexistent.

MyClass foo; // Type is MyClass, class is MyClass

12voto

Lonzo Puntos 1280

Tipo es el término general para todas las plantillas de objetos o conceptos disponibles. Una clase es una de esas plantillas de objetos. También lo es el tipo de estructura, el tipo de Entero, el tipo de Interfaz, etc. Estos son todos los tipos

Si quieres, puedes verlo de esta manera: Un tipo es el concepto de padre. Todos los demás conceptos: Clase, Interfaz, Estructura, Entero, etc. heredan de este concepto, es decir, son tipos

3voto

icelava Puntos 5655

Para ilustrarlo de la manera más rápida:

Una Estructura es un Tipo, pero una Estructura no es una Clase.

Como pueden ver, un Tipo es un término "abstracto" no sólo para las definiciones de las clases, sino también para las estructuras y los tipos de datos primitivos como float, int, bool.

3voto

aku Puntos 54867

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 describiendo algunos aspectos de un objeto.

Por ejemplo, en C# puedes encontrar interfaces y clases. Ambos son tipos, pero la interfaz sólo puede definir algún contrato y no puede ser instanciado a diferencia de las clases.

Simplemente hablando... clase es un tipo especializado utilizado para encapsular las propiedades y el comportamiento de un objeto.

Wikipedia puede darte una respuesta más completa:

Iteramos.com

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.

Powered by:

X