Abstracción en Java
¿Qué es la abstracción en Java?
Abstracción Es el concepto de programación orientada a objetos que “muestra” solo los atributos esenciales y “oculta” la información innecesaria. El objetivo principal de la abstracción es ocultar los detalles innecesarios a los usuarios. La abstracción consiste en seleccionar datos de un conjunto más amplio para mostrar solo los detalles relevantes del objeto al usuario. Ayuda a reducir la complejidad y los esfuerzos de programación. Es uno de los conceptos más importantes de la programación orientada a objetos.
Haga clic en aquí si el video no es accesible
Estudiemos la abstracción en programación orientada a objetos con un ejemplo:
Supongamos que desea crear una aplicación bancaria y se le pide que recopile toda la información sobre su cliente. Es posible que obtenga la siguiente información sobre el cliente:
Sin embargo, no toda la información anterior es necesaria para crear una aplicación bancaria. Por lo tanto, debe seleccionar solo la información útil para su aplicación bancaria de esa piscina. Datos como nombre, dirección, información fiscal, etc. tienen sentido para una aplicación bancaria que es un ejemplo de abstracción en programación orientada a objetos
Dado que hemos obtenido/eliminado/seleccionado la información del cliente de un grupo más grande, el proceso se denomina Abstracción en UPSSin embargo, una vez extraída la misma información, se puede utilizar para una amplia gama de aplicaciones. Por ejemplo, puede utilizar los mismos datos para una solicitud en un hospital, una solicitud en un portal de empleo, una base de datos del gobierno, etc., con poca o ninguna modificación. Por lo tanto, se convierten en sus datos maestros. Esta es una ventaja de la abstracción en la programación orientada a objetos.
Diferencia entre abstracción y encapsulación
Abstracción | La encapsulación |
---|---|
La abstracción en la programación orientada a objetos resuelve los problemas a nivel de diseño. | La encapsulación lo resuelve a nivel de implementación. |
La abstracción en programación consiste en ocultar detalles no deseados mientras se muestra la información más esencial. | La encapsulación significa vincular el código y los datos en una sola unidad. |
Abstracción de datos en Java Permite centrarse en lo que debe contener el objeto de información. | La encapsulación significa ocultar los detalles internos o la mecánica de cómo un objeto hace algo por razones de seguridad. |
Diferencia entre clase abstracta e interfaz
Clase abstracta | Fácil de usar |
---|---|
Una clase abstracta puede tener métodos tanto abstractos como no abstractos. | La interfaz sólo puede tener métodos abstractos. |
No admite herencias múltiples. | Soporta múltiples herencias. |
Puede proporcionar la implementación de la interfaz. | No puede proporcionar la implementación de la clase abstracta. |
Una clase abstracta puede tener métodos públicos protegidos y abstractos. | Una interfaz solo puede tener métodos abstractos públicos. |
Una clase abstracta puede tener una variable final, estática o final estática con cualquier especificador de acceso. | La interfaz solo puede tener una variable final estática pública. |
¿Qué es la clase abstracta?
CLASE ABSTRACTA es un tipo de clase en Java, que declaran uno o más métodos abstractos. Estas clases pueden tener métodos abstractos así como métodos concretos. Una clase normal no puede tener métodos abstractos. Una clase abstracta es una clase que contiene al menos un método abstracto. Podemos entender el concepto por el ejemplo de forma en java.
Considere la siguiente jerarquía de clases que consta de una clase Shape que es heredada por tres clases Rectangle, Circle y Triangle. La clase Shape se crea para guardar atributos y métodos comunes compartidos por las tres clases Rectangle, Circle y Triangle. calculateArea() es uno de esos métodos compartidos por las tres clases secundarias y está presente en la clase Shape.
Ahora, suponga que escribe código para crear objetos para las clases descritas anteriormente. Observemos cómo estos Los objetos se verán en un mundo práctico. Un objeto de la clase rectángulo dará un rectángulo, una forma que observamos tan comúnmente en la vida cotidiana.
Un objeto de la clase triángulo dará un triángulo, nuevamente una forma común y cotidiana.
Pero, ¿cómo se vería un objeto de Class Shape en un mundo práctico?
Si observas que la clase Shape sirve en nuestro objetivo de lograr herencia y polimorfismo. Pero no fue creado para ser instanciado. Estas clases pueden etiquetarse Resumen. No se puede crear una instancia de una clase java abstracta.
Sintaxis:
abstract class Shape{ // code }
Es posible que NO etiquete la clase Shape como Abstract y luego cree una instancia de ella. Pero dicho objeto no tendrá utilidad en su código y abrirá un espacio para posibles errores. Por tanto, esto no es deseable.
¿Qué son los métodos abstractos en Java?
MÉTODO ABSTRACTO in Java, es un método que solo tiene la definición del método pero no contiene implementación. Un método sin cuerpo se conoce como Método Abstracto. Debe declararse en una clase abstracta. El método abstracto nunca será definitivo porque la clase abstracta debe implementar todos los métodos abstractos.
Como todos sabemos, la fórmula para calcular el área de un rectángulo, un círculo y un triángulo es diferente. El método calcularArea() deberá ser anulado por las clases heredadas. No tiene sentido definirlo en la clase Shape, pero debemos asegurarnos de que todas las clases herederas tengan el método.
Estos métodos pueden denominarse abstracto.
Sintaxis:
abstract public void calculateArea();
Para una Método abstracto, no se requiere implementación. Sólo se define la firma del método.
Ejemplo de código de abstracción
abstract class Shape{ abstract void calculateArea(); } class guru99 extends Shape{ void calculateArea(){System.out.println("Area of Shape");} public static void main(String args[]){ Shape obj = new guru99(); obj.calculateArea(); } }
Ventajas de la abstracción
- El principal beneficio de utilizar una abstracción en Programación es que te permite agrupar varias clases relacionadas como hermanas.
- La abstracción en la programación orientada a objetos ayuda a reducir la complejidad del proceso de diseño e implementación del software.
Palabra clave final en Java
El modificador final se aplica a clases, métodos y variables. El significado de final varía de un contexto a otro, pero la idea esencial es la misma.
- No se puede heredar una clase final
- Una variable final se convierte en una constante y su valor no se puede cambiar.
- No se puede anular un método final. Esto se hace por razones de seguridad y estos métodos se utilizan para la optimización.
Ejemplo : - Para aprender palabras clave abstractas y finales
Paso 1) Copie el siguiente código en un editor.
abstract class Shape{ final int b = 20; public void display(){ System.out.println("This is display method"); } abstract public void calculateArea(); } public class Rectangle extends Shape{ public static void main(String args[]){ Rectangle obj = new Rectangle(); obj.display(); //obj.b=200; } //public void calculateArea(){} }
Paso 2) Guarde, compile y ejecute el código.
Paso 3) Error=? El método abstracto no está implementado en la clase Rectángulo. Para solucionar el problema, descomente la línea n.° 15.
Paso 4) Descomente la línea n.º 13. Guarde y compile el código.
Paso 5) Error=? la variable b es final
¿Cuándo utilizar métodos abstractos y clases abstractas?
Los métodos abstractos se declaran principalmente cuando dos o más subclases también hacen lo mismo de diferentes maneras a través de diferentes implementaciones. También amplía la misma clase abstracta y ofrece diferentes implementaciones de los métodos abstractos.
Las clases abstractas ayudan a describir tipos genéricos de comportamientos y la jerarquía de clases de la programación orientada a objetos. También describen subclases para ofrecer detalles de implementación de la clase abstracta.
Resumen:
- La abstracción en programación es el proceso de seleccionar conjuntos de datos importantes para un Objeto en su software y omitiendo los insignificantes.
- Una vez que haya modelado su objeto usando la abstracción de datos en Java, el mismo conjunto de datos podría usarse en diferentes aplicaciones.