Diferencia clave: clase frente a interfaz
La Programación Orientada a Objetos (POO) es un paradigma común en el desarrollo de software. Ayuda a traer escenarios del mundo real a la programación usando clases y objetos. Una clase es un modelo para crear un objeto. El programador puede crear una clase con propiedades y métodos. Un estudiante y un maestro son objetos. La creación de un objeto se conoce como instanciación. OOP también usa interfaces. Las interfaces y la clase pueden parecer similares, pero tienen una diferencia. Este artículo analiza la diferencia entre una clase y una interfaz. La diferencia clave entre una clase y una interfaz es que una clase es un tipo de referencia que es un modelo para crear una instancia de un objeto, mientras que la interfaz es un tipo de referencia que no se puede usar para crear una instancia de un objeto.
¿Qué es la clase?
En OOP, todo se considera como un objeto. No es posible crear un objeto sin una clase. Una clase es un modelo para crear un objeto. Al construir una casa, el arquitecto dibuja el plano. El plan es similar a una clase. La casa es similar al objeto. La clase es el plan para construir un objeto. Un objeto es lo que se crea usando la clase.
La clase contiene las propiedades y los métodos. Un estudiante puede tener propiedades como nombre, grado, número de índice. Un estudiante puede tener métodos como leer, caminar, estudiar. Se crea una clase con las propiedades y métodos necesarios.
La sintaxis para crear una clase en muchos lenguajes de programación es la siguiente. Se crea utilizando la palabra clave class.
clase nombre_clase {
// propiedades
//métodos
}
Los lenguajes de programación como C y Java siguen una sintaxis similar para crear un objeto usando una clase. Suponga que el nombre de la clase es Student.
Estudiante s1=nuevo Estudiante ();
Este s1 es el objeto. La palabra clave "nuevo" se utiliza para asignar memoria para las propiedades. Una clase también tiene un constructor para inicializar propiedades o variables.
Los miembros de la clase, como las propiedades y los métodos, tienen modificadores de acceso. Los especificadores de acceso describen la accesibilidad y la visibilidad de esos miembros para otras clases. Los miembros de la clase pueden tener especificadores de acceso como público, privado y protegido. Los miembros públicos son accesibles por otras clases. Los miembros privados solo son accesibles para la clase. Se puede acceder a los miembros protegidos dentro de la clase y las subclases relevantes.
¿Qué es la interfaz?
La abstracción es un pilar de la programación orientada a objetos. Es para ocultar los detalles de implementación y mostrar la funcionalidad al usuario. La abstracción se logra utilizando clases e interfaces abstractas. Un método abstracto no tiene una implementación. Una clase que contiene al menos un método abstracto se llama clase abstracta.
Cuando hay dos clases abstractas, se deben implementar los métodos declarados en esas clases. Se utiliza una nueva clase para implementar esos métodos. Si ambas clases tuvieran el mismo método, podría causar un problema de ambigüedad. Por lo tanto, los lenguajes de programación como Java y C tienen una interfaz.
Las interfaces contienen solo la declaración de métodos. No hay método de implementación. Además, las interfaces no se pueden utilizar para crear objetos. Se utilizan para soportar múltiples herencias y para asegurar el código.
La sintaxis de la interfaz es la siguiente. Interfaz utilice la palabra clave "interfaz".
interfaz nombre_interfaz{
tipo método1(lista_parámetros);
tipo método2(lista_parámetros);
}
Según lo anterior, las interfaces solo tienen la declaración. No hay definición. Por lo tanto, las interfaces no pueden instanciar objetos. Solo da una visión abstracta de lo que es la interfaz. Los métodos declarados en la interfaz pueden ser implementados por una o varias clases. Una clase usa la palabra clave "implementar" para implementar una interfaz. Consulte el siguiente ejemplo escrito con Java.
Figura 01: Programa usando Interfaces
Según el programa anterior, A y B son interfaces. La interfaz A tiene una declaración de método que es sum(). La interfaz B tiene una declaración de método sub(). La clase C implementa ambas interfaces, que son A y B. Por lo tanto, la clase C define los métodos sum() y sub(). Después de crear el objeto de tipo C, es posible llamar a ambos métodos sum() y sub().
Los métodos declarados dentro de la interfaz siempre deben ser públicos porque las clases que los implementan los definen. Una interfaz también puede heredar de otra interfaz.
¿Cuáles son las similitudes entre la clase y la interfaz?
- Ambos son tipos de referencia.
- Ambos se relacionan con la Programación Orientada a Objetos.
¿Cuál es la diferencia entre clase e interfaz?
Clase vs Interfaz |
|
Una clase es un tipo de referencia que es un modelo para crear un objeto. | Una interfaz es un tipo de referencia que no se puede instanciar. |
Instanciación de objeto | |
Una clase se usa para instanciar un objeto. | No se puede instanciar una interfaz porque los métodos no pueden realizar ninguna acción. |
Constructor | |
Una clase contiene un constructor, para inicializar las variables. | Una interfaz no contiene un constructor porque apenas hay variables para inicializar. |
Palabra clave | |
Una clase utiliza la palabra clave "clase". | Una interfaz utiliza la palabra clave "interfaz". |
Especificador de acceso | |
Los miembros de la clase pueden ser privados, públicos y protegidos. | Los miembros de la interfaz deben ser siempre públicos porque las clases que los implementan los definen. |
Resumen: clase frente a interfaz
Las clases y las interfaces se utilizan mucho en la programación orientada a objetos. La diferencia entre una clase y una interfaz es que una clase es un tipo de referencia que es un modelo para instanciar un objeto y la interfaz es un tipo de referencia que no se puede usar para instanciar un objeto. Una clase puede implementar muchas interfaces. Pero solo puede extender una superclase. En la interfaz puede heredar muchas interfaces pero no puede haber una implementación. Ambos tienen su importancia. El programador puede usarlos de acuerdo con el software en desarrollo.
Descargue la clase en PDF frente a la interfaz
Puede descargar la versión en PDF de este artículo y utilizarlo sin conexión según la nota de la cita. Descargue la versión en PDF aquí Diferencia entre clase e interfaz