Diferencia entre clase e interfaz en Java

Autor: Laura McKinney
Fecha De Creación: 2 Abril 2021
Fecha De Actualización: 14 Mayo 2024
Anonim
Diferencia entre clases abstractas e interfaces en Java
Video: Diferencia entre clases abstractas e interfaces en Java

Contenido


La clase y la interfaz se utilizan para crear nuevos tipos de referencia. Una clase es una colección de campos y métodos que operan en campos. Una interfaz tiene métodos completamente abstractos, es decir, métodos con nadie. Una interfaz es sintácticamente similar a la clase, pero existe una gran diferencia entre la clase y la interfaz, es decir, una clase se puede instanciar, pero una interfaz nunca se puede instanciar. Entonces, aprendamos más diferencias entre una clase y una interfaz con la ayuda de un cuadro de comparación que se muestra a continuación.

  1. Cuadro comparativo
  2. Definición
  3. Diferencias clave
  4. Conclusión

Cuadro comparativo

Bases para la comparaciónClaseInterfaz
BásicoSe crea una instancia de una clase para crear objetos.Nunca se puede crear una instancia de una interfaz ya que los métodos no pueden realizar ninguna acción al invocar.
Palabra claveclaseinterfaz
Especificador de accesoLos miembros de una clase pueden ser privados, públicos o protegidos.Los miembros de una interfaz son siempre públicos.
Métodos Los métodos de una clase se definen para realizar una acción específica.Los métodos en una interfaz son puramente abstractos.
Implementar / ExtenderUna clase puede implementar cualquier número de interfaz y puede extender solo una clase.Una interfaz puede extender múltiples interfaces pero no puede implementar ninguna interfaz.
Constructor Una clase puede tener constructores para inicializar las variables.Una interfaz nunca puede tener un constructor ya que casi no hay ninguna variable para inicializar.


Definición de clase

Una clase es el aspecto más importante de la programación Java sin clases que no puede implementar un programa java. Una clase crea tipos de referencia y estos tipos de referencia se utilizan para crear objetos. Una clase tiene una firma y un cuerpo. La firma de una clase tiene el nombre y la información de la clase que indica si la clase ha heredado otra clase. El cuerpo de una clase tiene campos y métodos que operan en esos campos. Una clase se crea usando una palabra clave clase. Veamos cómo declarar una clase.

clase nombre_clase {/ * campos ... métodos * /}

Cuando se instancia una clase, cada objeto creado contiene una copia de campos y métodos con ellos. Los campos y miembros declarados dentro de una clase pueden ser estáticos o no estáticos. El valor de los miembros estáticos es constante para cada objeto, mientras que los miembros no estáticos son inicializados por cada objeto de manera diferente de acuerdo con sus requisitos.


Los miembros de una clase tienen especificadores de acceso que deciden la visibilidad y accesibilidad de los miembros para el usuario o para las subclases. Los especificadores de acceso son públicos, privados y protegidos. Una clase puede ser heredada por otra clase utilizando el especificador de acceso que decidirá la visibilidad de los miembros de una superclase (clase heredada) en una subclase (clase heredada). Así, la clase cumple el concepto de ocultación y encapsulación de datos en la programación orientada a objetos.

Definición de interfaz

Una interfaz también se encuentra entre los tipos de referencia definidos en Java. La importancia de una interfaz es que en Java, una clase solo puede heredar una sola clase. Para evitar esta restricción, los diseñadores de Java introdujeron un concepto de interfaz. Una interfaz es sintácticamente similar a una clase, pero carece de declaración de campo y los métodos dentro de una interfaz no tienen ninguna implementación. Una interfaz se declara usando una palabra clave interfaz. Veamos la declaración de una interfaz.

interface interface_name {type var_name = value; tipo método1 (lista de parámetros); tipo method2 (lista de parámetros); . . }

Una interfaz no define ningún método declarado en su interior porque carece de campos para operar. El hecho de que cualquier método dentro de una interfaz no realice ninguna acción, nunca se puede instanciar una interfaz. Si una interfaz tiene algún miembro de campo, debe inicializarse en el momento de su declaración. Una interfaz nunca contiene ningún constructor, ya que carece de miembros de campo para inicializar. Por lo tanto, una interfaz solo define lo que debe hacer una clase en lugar de cómo debe hacerlo.

Una interfaz creada una vez puede ser implementada por cualquier número de clases usando una palabra clave implementos. Pero las clases que implementan una interfaz deben definir todos los métodos dentro de una interfaz. Una interfaz también puede heredar otra interfaz usando ampliar palabra clave. Si una clase implementa una interfaz que extiende una otra interfaz. Luego, una clase debe definir los métodos de ambas interfaces que aparecen en una cadena. Los métodos dentro de una interfaz siempre deben ser públicos, ya que las clases que los implementan deben acceder a ellos.

Diferencias clave entre clase e interfaz en Java

  1. Se puede crear una instancia de una clase creando sus objetos. Una interfaz nunca se instancia ya que los métodos declarados dentro de una interfaz son abstractos y no realizan ninguna acción, por lo que no sirve de nada instanciar ninguna interfaz.
  2. Una clase se declara usando una clase de palabra clave. Del mismo modo, se crea una interfaz utilizando una interfaz de palabras clave.
  3. Los miembros de una clase pueden tener el especificador de acceso como público, privado, protegido. Pero los miembros de una interfaz siempre son públicos, ya que las clases que los implementan tienen que acceder a ellos.
  4. Los métodos dentro de una clase se definen para realizar una acción en los campos declarados en la clase. Como la interfaz carece de la declaración de campos, los métodos dentro de una interfaz son puramente abstractos.
  5. Una clase puede implementar cualquier cantidad de interfaces, pero solo puede extender una superclase. Una interfaz puede extender cualquier número de interfaces pero no puede implementar ninguna interfaz.
  6. Una clase tiene constructores definidos dentro de ella para inicializar la variable. Pero, una interfaz no tiene ningún constructor ya que no hay campos para inicializar. Los campos de una interfaz se inicializan solo en el momento de su declaración.

Conclusión:

Tanto las clases como las interfaces tienen su propia importancia. Se utiliza una clase cuando necesitamos definir cómo se realizaría la tarea. Se utiliza una interfaz cuando necesitamos saber qué tarea hay que hacer.