Una introducción completa a las clases abstractas en Java



Este artículo lo ayudará con un enfoque detallado de las clases abstractas en Java junto con ejemplos para comprender el concepto de una manera mucho mejor.

Clases abstractas en ayudar a los usuarios a lograr la abstracción, que es la práctica de programación orientada a objetos más importante que se sigue durante el proceso de diseño de software. En este artículo, discutiremos la terminología de las clases abstractas a través del siguiente expediente.

¿Qué son las clases abstractas en Java?

Clases abstractas en actuar como un límite entre el método de implementación y su funcionalidad. Se utiliza para intercambiar la funcionalidad entre Hormigón miembros de la clase y el Abstracto Clase.





Abstract-Classes-in-Java-Edureka

Se consideran clases abstractas aquellas clases que ocultan la Implementación del método detalles del usuario y mostrar solo los Funcionalidad del método. Se declaran usando la palabra clave abstracto . Estos métodos pueden incluir Abstracto y No abstracto métodos en ellos.

que es un búferreader java

¿Por qué necesitamos clases abstractas en Java?

Necesitamos clases abstractas en Java por las siguientes razones:



  • Soporte técnico de Abstract Classes Resolución de método dinámico en tiempo de ejecución
  • Ayudan a los usuarios a lograr Bajo acoplamiento
  • Las clases abstractas separan Definición del método de lo heredado Subclases
  • Proporcionan el Funcionalidad predeterminada del método definido para todas las subclases
  • Las clases abstractas proporcionan una Modelo para futuras clases específicas
  • La clase abstracta permite Código Reutilización

Reglas para usar clases abstractas en Java

Para implementar una clase abstracta en Java, debemos seguir las reglas que se describen a continuación:



  • Una clase abstracta debe declararse utilizando el abstracto palabra clave.
  • Las clases abstractas pueden incluir abstracto y no abstracto métodos.
  • Una clase abstracta no puede ser instanciado.
  • Pueden incluir constructores y estático métodos.
  • Una clase abstracta incluye final métodos.

Formas de lograr la abstracción en Java

El proceso de abstracción en Java se puede lograr mediante los siguientes dos métodos, como se menciona a continuación:

  1. Implementando una clase abstracta
  2. Implementar una interfaz

La sintaxis de las clases abstractas

La sintaxis para definir clases abstractas y métodos abstractos es la siguiente:

clase abstracta Edureka {}
Método de clase abstracta ()

Ejemplos prácticos de clases abstractas

//Clase abstracta

paquete Abstract public abstract class Person {private String name private String género public Person (String nm, String gen) {this.name = nm this.gender = gen} public abstract void Estudiar () @Override public String toString () {return ' Nombre = '+ this.name +' :: Gender = '+ this.gender}}

// Clase de estudiante

lista de matrices de tipo java de enteros
paquete Abstract public class Student amplía Person {private int StudentID public Student (String nm, String gen, int id) {super (nm, gen) this.StudentID = id} @Override public void Estudiar () {if (StudentID == 0 ) {System.out.println ('No está estudiando')} else {System.out.println ('Para obtener una licenciatura en ingeniería')}} public static void main (String args []) {Persona estudiante = nuevo estudiante ('Priya', 'Mujer', 0) Persona alumno1 = nuevo alumno ('Karan', 'Hombre', 201021) Persona alumno2 = nuevo alumno ('Kumari', 'Mujer', 101021) Persona alumno3 = nuevo alumno (' John ',' Masculino ', 201661) estudiante.Estudiendo () estudiante1.Estudiante () estudiante2.Estudiante () estudiante3.Sistema.out.println (estudiante.toString ()) System.out.println (estudiante1.toString) ()) System.out.println (estudiante2.toString ()) System.out.println (estudiante3.toString ())}}

Salida:

No estudiar
Cursando una licenciatura en ingeniería
Cursando una licenciatura en ingeniería
Cursando una licenciatura en ingeniería
Nombre = Priya :: Género = Mujer
Nombre = Karan :: Género = Masculino
Nombre = Kumari :: Género = Mujer
Nombre = John :: Género = Masculino

Diferencia entre interfaz y clase abstracta

Interfaz Clase abstracta
Solo puede tener métodos abstractosPuede tener métodos abstractos y no abstractos
Tiene solo Variables finalesIncluye variables no finales
Solo tiene variables estáticas y finalesTiene variables estáticas, no estáticas, finales, no finales
No implementará la clase abstractaPuede implementar una interfaz
Implementado usando la palabra clave 'implementos'Implementado usando la palabra clave 'extiende'
Puede extender solo una interfazPuede extender clases e interfaces de Java
Los miembros son públicos de forma predeterminadaLos miembros pueden ser privados y estar protegidos

// Ejemplo de clase abstracta

paquete abstactVSinterface abstract class Shape {String objectName = '' Shape (String name) {this.objectName = name} abstract public double area () abstract public void draw ()} class Rectangle extiende Shape {int longitud, ancho Rectángulo (int longitud, int ancho, nombre de cadena) {super (nombre) this.length = largo this.width = ancho} @Override public void draw () {System.out.println ('Rectangle is drawn')} @Override public double area () {return (doble) (largo * ancho)}} clase Círculo extiende Forma {doble pi = 3.14 int radio Círculo (int radio, nombre de cadena) {super (nombre) this.radius = radio} @Override public void draw () { System.out.println ('Se dibuja el círculo')} @Override public double area () {return (double) ((pi * radius * radius) / 2)}} class Edureka {public static void main (String [] args ) {Forma rect = new Rectangle (20, 30, 'Rectangle') System.out.println ('Area of ​​rectangle:' + rect.area ()) Shape circle = new Circle (20, 'Cicle') System.out .println ('El área del círculo es:' + circle.area ())}}

Salida:

Área del rectángulo: 600.0
El área del círculo es: 628.0

// Ejemplo de interfaz

paquete absVSint interfaz Shape {void draw () double area ()} class Rectangle implementa Shape {int largo, ancho Rectángulo (int largo, int ancho) {this.length = largo this.width = ancho} @Override public void draw () {System.out.println ('Rectángulo ha sido dibujado')} @Override public double area () {return (double) (length * width)}} class Circle implementa Shape {double pi = 3.14 int radius Circle (int radius) {this.radius = radius} @Override public void draw () {System.out.println ('Circle has been drawn')} @Override public double area () {return (double) ((pi * radius * radius) / 2)}} class Edureka {public static void main (String [] args) {Shape rect = new Rectangle (20, 30) System.out.println ('Area of ​​rectangle:' + rect.area ()) Shape circle = new Circle (20) System.out.println ('Área del círculo:' + circle.area ())}}

Salida:

fusionar ordenar algoritmo c ++

Área del rectángulo: 600.0
Área del círculo: 628.0

Con esto llegamos al final de este artículo. Espero que hayas entendido la importancia de la abstracción, la sintaxis, la funcionalidad, las reglas de abstracción en Java y los ejemplos prácticos relacionados con ellas.

Ahora que ha entendido los conceptos básicos de Java, consulte la por Edureka, una empresa de aprendizaje en línea de confianza con una red de más de 250.000 alumnos satisfechos repartidos por todo el mundo. El curso de formación y certificación Java J2EE y SOA de Edureka está diseñado para estudiantes y profesionales que desean ser desarrolladores de Java. El curso está diseñado para darle una ventaja en la programación de Java y capacitarlo para los conceptos básicos y avanzados de Java junto con varios marcos de Java como Hibernate y Primavera .

Tienes una pregunta para nosotros? Menciónalo en la sección de comentarios de este blog de “Clases abstractas en Java” y te responderemos lo antes posible.