Clase abstracta en Java - Con ejemplos

Publicado: 2022-06-24

La abstracción de datos es la técnica de ocultar cierta información y mostrar solo los detalles requeridos a los usuarios. Esta abstracción de datos se puede lograr de dos maneras, clase abstracta e interfaces.

Tabla de contenido

¿Qué es una clase abstracta en Java?

Una clase abstracta en Java es una clase restringida encerrada o declarada con la palabra clave abstracta. Una clase abstracta puede tener métodos tanto abstractos como no abstractos. No se puede utilizar para crear un objeto. Para acceder a una clase abstracta, debe ser heredada de otra clase.

Aprenda cursos de desarrollo de software en línea de las mejores universidades del mundo. Obtenga Programas PG Ejecutivos, Programas de Certificado Avanzado o Programas de Maestría para acelerar su carrera.

Reglas de Clase Abstracta

  • Una clase abstracta solo se puede declarar dentro de una palabra clave abstracta.
  • Puede contener métodos abstractos y no abstractos.
  • También puede tener métodos finales.
  • Nunca se puede instanciar.
  • También se pueden utilizar constructores y métodos estáticos.

Ejemplo de una clase abstracta:

clase abstracta B{}

Un método abstracto en Java

Este método solo se puede usar en una clase abstracta y no contiene un cuerpo. El cuerpo lo proporcionará la subclase heredada.

Un ejemplo de un método abstracto es:

estado de impresión vacío abstracto (); //sin cuerpo de método ni resumen

Ejemplo de clase abstracta de Java con un método abstracto

En el siguiente ejemplo, el automóvil es una clase abstracta con un método abstracto, ejecutar. La implementación la proporciona la clase, Audi.

Coche de clase abstracta{

ejecución vacía abstracta ();

}

clase Audi4 extiende la bicicleta{

void ejecutar () {System.out.println ("funcionando bien");}

public static void main(String args[]){

Coche obj = nuevo Audi4();

obj.ejecutar();

}

}

La salida del programa será "funcionando bien".

En la mayoría de los casos, la clase de implementación permanece desconocida (abstracción de datos) y se obtiene un objeto de la clase de implementación a través del método de fábrica.

Un método que devuelve la instancia de la clase se denomina método de fábrica.

Ejemplo de clase abstracta de Java con el método de fábrica

En el siguiente ejemplo, al crear la instancia de una clase cuadrada, se inicia el método draw() de la clase Cuadrada.

forma de clase abstracta{

dibujo vacío abstracto ();

}

//En un escenario real, la implementación es proporcionada por otros, es decir, desconocido por el usuario final

clase Cuadrado extiende Forma{

void dibujar () {System.out.println ("dibujar cuadrado");}

}

clase Circle1 extiende Forma{

void dibujar () {System.out.println ("dibujar hexágono");}

}

// En un escenario real, el programador o usuario llama al método

clase PruebaAbstracción1{

public static void main(String args[]){

Shape s=new Circle1();//En un escenario real, el objeto se proporciona a través del método, por ejemplo, el método getShape()

s.draw();

}

}

La salida del programa anterior será "dibujar hexágono".

Cursos y artículos populares sobre ingeniería de software

Programas Populares
Programa PG Ejecutivo en Desarrollo de Software - IIIT B Programa de Certificación Blockchain - PURDUE Programa de Certificado de Ciberseguridad - PURDUE MSC en Ciencias de la Computación - IIIT B
Otros artículos populares
Salario de ingeniero de nube en los EE. UU. 2021-22 Salario del arquitecto de soluciones de AWS en EE. UU. Salario de desarrollador de backend en los EE. UU. Salario de desarrollador front-end en EE. UU.
Salario de desarrollador web en EE. UU. Preguntas de la entrevista de Scrum Master en 2022 ¿Cómo iniciar una carrera en seguridad cibernética en 2022? Opciones de carrera en los EE. UU. para estudiantes de ingeniería

¿Cuándo se debe usar una clase abstracta en Java?

A continuación se muestran algunos escenarios en los que se puede utilizar una clase abstracta:

  • Al intentar introducir el concepto de herencia en el código (para compartir código entre varias clases relevantes) mediante el uso de métodos comunes de una clase base.
  • Cuando los requisitos son específicos y los detalles de implementación están incompletos.
  • Cuando las clases utilizadas para ampliar una clase abstracta tienen varios campos o métodos comunes que requieren modificadores no públicos.
  • Cuando se utilizan métodos no finales o no estáticos para modificar el estado del objeto.

¿Cuándo usar una interfaz en Java para abstracción?

Los siguientes escenarios requieren una interfaz Java para lograr la abstracción:

  • Para soportar funcionalidades de herencias múltiples
  • Para lograr un acoplamiento flojo

Declaración de una interfaz

La interfaz debe declararse solo mediante la palabra clave de interfaz. Esto da como resultado una abstracción total, de modo que todos los métodos de herencia se declaran en un cuerpo vacío y todos los campos se vuelven públicos, estáticos y finales de forma predeterminada. La clase que implementa la interfaz debe implementar todos los métodos que se declaran en la interfaz.

Ejemplo de interfaz Java

En el siguiente ejemplo, la interfaz imprimible tiene solo un método cuya implementación se proporciona en la clase A6.

interfaz imprimible{

impresión vacía ();

}

clase A6 implementa imprimible{

public void print(){System.out.println(“Bienvenido”);}

public static void main(String args[]){

A6 obj = nuevo A6();

obj.print();

}

}

La salida del programa será

Bienvenidos.

Ejemplo 2:

Banco de interfaz{

tasa flotante de interés ();

}

clase BOI implementa Banco{

tasa flotante pública de interés () {return 8.5f;}

}

clase CUB implementa Banco{

tasa flotante pública de interés () {return 9.2f;}

}

clase TestInterface2{

public static void main(String[] args){

Banco b=nuevo BOI();

System.out.println(“ROI: “+b.rateOfInterest());

}}

La salida del programa anterior será

ROI: 8.5

Ventajas de la abstracción en Java

  • Acoplamiento flexible: la abstracción en Java ayuda en el acoplamiento flexible al mitigar las entidades dependientes a un nivel exponencial.
  • Códigos reutilizables: la clase abstracta en Java es un gran ahorro de tiempo. El método abstracto se puede llamar solo cuando sea necesario. La clase abstracta evita reescribir los mismos códigos, ahorrando así tiempo.
  • Protección de datos: la abstracción de datos en Java ayuda a ocultar los detalles confidenciales del código a los usuarios. Ayuda a ocultar características importantes del proyecto y muestra solo los componentes esenciales.
  • Resolución de problemas más rápida: con la ayuda de la resolución de métodos dinámicos, se pueden resolver varios problemas y complicaciones utilizando solo un método abstracto.

Para obtener más información sobre la abstracción de datos en Java y el desarrollo de software, inscríbase en el Programa Ejecutivo de Posgrado en Desarrollo de Software ofrecido por IIIT Bangalore en asociación con upGrad.

El programa de posgrado ejecutivo en desarrollo de software es un programa en línea de 13 meses. El plan de estudios está especialmente diseñado para que los profesionales que trabajan se concentren en el aprendizaje sin renunciar a sus trabajos. El plan de estudios incluye proyectos basados ​​en la industria y estudios de casos. Además, el programa cuenta con más de 10 sesiones en vivo de expertos de la industria para ayudar a los candidatos a mantenerse actualizados con las tendencias actuales de la industria.

¿Podemos tener una clase abstracta sin ningún método abstracto?

Sí. Es posible tener una clase abstracta sin ningún método abstracto ya que ambas son técnicas independientes. Declarar una clase abstracta implica que no se puede instanciar por sí sola y solo se puede hacer con la ayuda de una subclase. Definir un método abstracto significa que el método está definido o contenido en la subclase.

¿Por qué es esencial la abstracción de datos?

Sí. Es posible tener una clase abstracta sin ningún método abstracto ya que ambas son técnicas independientes. Declarar una clase abstracta implica que no se puede instanciar por sí sola y solo se puede hacer con la ayuda de una subclase. Definir un método abstracto significa que el método está definido o contenido en la subclase.

¿En qué se diferencia la abstracción de datos de la abstracción de control?

La abstracción de datos es el proceso de crear tipos de datos complejos y complicados, pero resaltando o revelando solo los detalles esenciales. La abstracción de control es el proceso que se ocupa de la parte de software de la abstracción. Es el proceso en el que el programa se desglosa o simplifica, y se ocultan detalles no deseados de las ejecuciones del programa. La abstracción de control se utiliza principalmente para generar nuevas funcionalidades y combinar varias declaraciones de control en una sola entidad.