clase abstracta

una clase abstracta es una clase que se declara abstracta-puede o no incluir métodos abstractos. Las clases abstractas no pueden ser instanciadas, pero pueden ser subclases. Una clase abstracta puede tener campos estáticos y métodos estáticos. Cuando una clase abstracta es subclase, la subclase generalmente proporciona implementaciones para todos los métodos abstractos en su clase padre. Sin embargo, si no lo hace, entonces la subclase también debe ser declarada abstracta.,

un método abstracto es un método que se declara sin una implementación (sin llaves y seguido de un punto y coma), Así:

abstract void sum(int a, int b);

considere usar clases abstractas si cualquiera de estas instrucciones se aplica a su situación:

  1. desea compartir código entre varias clases estrechamente relacionadas.
  2. usted espera que las clases que extienden su clase abstracta tengan muchos métodos o campos comunes o requieran modificadores de acceso que no sean públicos (como protegidos y privados).
  3. desea declarar campos no estáticos o no FINALES., Esto le permite definir métodos que pueden acceder y modificar el estado del objeto al que pertenecen.

interfaz

Una interfaz es solo la declaración de métodos de un objeto; no es la implementación. En una interfaz, definimos qué tipo de operación puede realizar un objeto. Estas operaciones están definidas por las clases que implementan la interfaz. Las Interfaces forman un contrato entre la clase y el mundo exterior, y este Contrato se aplica en el tiempo de compilación por el compilador.,

considere usar interfaces si cualquiera de estas instrucciones se aplican a su situación:

  1. usted espera que las clases no relacionadas implementen su interfaz. Por ejemplo, las interfaces comparables y Clonables son implementadas por muchas clases no relacionadas.
  2. desea especificar el comportamiento de un tipo de datos en particular, pero no se preocupa por quién implementa su comportamiento.
  3. desea aprovechar múltiples herencias.,

publicado originalmente en junio de 2016

lectura adicional

  • cuándo (no) usar clases abstractas Java
  • Java: interfaz Vs. clase abstracta
  • Cómo elegir entre interfaz y clases abstractas en Java