Clase abstracta de Java

Clase abstracta de Java
El concepto de abstracción es resaltar la tarea del objeto en lugar de resaltar, "cómo el objeto hace la tarea". Este tipo de concepto se puede implementar utilizando dos formas en Java. Estos son la clase y la interfaz abstractas. La clase abstracta contiene la palabra clave abstracto. Esta clase no se puede iniciar como otras clases normales, pero se puede derivar una subclase heredando la clase abstracta. Se puede acceder a las características de la clase abstracta creando el objeto de la subclase. Una clase abstracta también puede contener el constructor al que se puede acceder creando el objeto de la clase de subclase. Cómo puede usar una clase abstracta en Java se muestra en este tutorial.

Sintaxis:

RESUMEN CLASE CLASSNAME
variable_names;
Método abstracto1 ();
Public Method2 ()
Declaraciones 1 ... n

Una clase abstracta puede contener atributos o variables, método abstracto y método normal o cualquier persona de ellos. Pero la subclase de la clase abstracta solo puede implementar el método abstracto de la clase abstracta.

Ejemplo-1: clase abstracta con un método público

El siguiente ejemplo muestra cómo puede declarar una clase abstracta con un método público y la forma de usar una clase abstracta creando una subclase. Aquí, la clase abstracta contiene un método público nombrado detalles() que se implementa dentro de la clase abstracta. El objeto de la subclase se crea para acceder al método público de la clase abstracta.

// Definir clase abstracta con método público
libro de clase abstracta
Detalles de Naciones públicas ()
Sistema.afuera.println ("Nombre del libro: Aprenda PHP en 15 minutos");
Sistema.afuera.println ("Nombre del autor: Jake Wright");
Sistema.afuera.println ("Precio de descuento: $ 35");


// Definir subclase
La clase PHP extiende el libro

//Clase principal
Clase Abstract1
public static void main (string [] args)
php bk = new Php ();
bk.detalles();

Producción:

La siguiente salida aparecerá después de ejecutar el código. Aquí el detalles() se llama método de clase abstracta y el texto se imprime desde el método.

Ejemplo-2: clase abstracta con el método abstracto y el método público

El siguiente ejemplo muestra cómo se puede declarar una clase abstracta con variables, un método abstracto y un método público. Las declaraciones del método público se definen dentro de la clase abstracta, pero el cuerpo del método abstracto está vacío que se implementa dentro de la subclase de la clase abstracta. Aquí, se declaran dos subclases extendiendo la clase abstracta. La subclase nombrada cuadrado calculará e imprimirá el área de un cuadrado en el valor de norte variable. La subclase nombrada rectángulo calculará e imprimirá el área del rectángulo en función del valor de H y w variables. El método público, readData () es llamado por un parámetro nombrado tipo para identificar qué variables (s) de la clase abstracta se inicializarán. El valor del tipo La variable será 1 para inicializar el valor de norte y 2 para inicializar el valor de H y w.

// Definir una clase abstracta con un método abstracto y un método público
Área de clase abstracta
público int n, h, w;
Resultado de vacío abstracto ();
public void readData (int type)
if (type == 1)
n = 10;

demás
h = 20;
w = 30;



// Definir subclase cuadrado
Class Square extiende el área
Resultado de publicidad public ()
// Calcular el área de la plaza
int AreaVal = n*n;
Sistema.afuera.println ("El área del cuadrado es" + área de val);


// Definir subclase rectangular
El rectángulo de clase extiende el área
Resultado de publicidad public ()
// Calcular el área del rectángulo
int AreaVal = H*W;
Sistema.afuera.println ("El área del rectángulo es" + Area Val);


//Clase principal
Clase Abstract2
public static void main (string [] args)
// Crear objeto de la clase cuadrada
cuadrado sq = new Square ();
sq.readData (1);
sq.resultado();
// Crear objeto de la clase rectángulo
rectángulo rq = new rectangle ();
RQ.readData (2);
RQ.resultado();

Producción:

La siguiente salida aparecerá después de ejecutar el código. La salida muestra el área de un cuadrado donde el valor de norte es 10 y el área de un rectángulo donde el valor de H es 20, y el valor de w es 30.

Ejemplo-3: clase abstracta con el constructor

El siguiente ejemplo muestra cómo se puede declarar y utilizar el constructor dentro de una clase abstracta. El constructor de la clase abstracta inicializará los valores de a y b. El método abstracto, maxval () se implementa en la subclase nombrada findmax. súper() El método se utiliza en el constructor de la subclase para llamar al constructor de una clase abstracta. El método abstracto maxval () descubrirá el valor máximo de dos números que se darán a los parámetros del constructor de la subclase en el momento de la creación de objetos.

// Definir una clase abstracta con un constructor
Números de clase abstractos
// declarar variables
protegido final int a, b;
// Constructor de clase abstracto
Números públicos (int x, int y)
este.a = x;
este.b = y;

// Método público
Public Abstract void maxval ();

// Definir subclase
La clase Findmax extiende los números
// Constructor de subclase
Public Findmax (int x, int y)
// Llamar al constructor de clase abstracta
super (x, y);

// Implementar el método abstracto
public void maxval ()
if (a> b)
Sistema.afuera.println (a + "es mayor que" + b);

demás
Sistema.afuera.println (b + "es mayor que" + a);



//Clase principal
Clase Abstract3
public static void main (string [] args)
// Crear objeto de la subclase
findmax fmax = new Findmax (34,89);
// Encuentra el máximo
fmax.maxval ();

Producción:

La siguiente salida aparecerá después de ejecutar el script. Aquí, 34 y 89 se dan como valores de parámetros del constructor. Estos valores se comparan en el método abstracto que se implementa en la subclase e imprime el siguiente mensaje.

Conclusión:

Se utiliza una clase abstracta para que el programa sea más organizado y comprensible. Se pueden agrupar varias clases relacionadas utilizando clases abstractas. El concepto y la implementación de la clase abstracta con diferentes partes se explican en este tutorial mediante el uso de ejemplos simples. Espero que los lectores puedan comprender el uso de la clase abstracta y aplicarla en su código correctamente después de leer este tutorial.