Métodos abstractos en Java con ejemplos

A veces, solo requerimos la declaración de métodos en superclases. Esto se puede lograr especificando el modificador de tipo abstracto . Estos métodos a veces se denominan responsabilidad del subclase porque no tienen una implementación especificada en la superclase. Por lo tanto, una subclase debe anularlos para proporcionar una definición de método. Para declarar un método abstracto, utilice esta forma general:
 

abstract type method-name(parameter-list);

Como puede ver, no hay ningún cuerpo de método presente. Cualquier clase concreta (es decir, clase sin palabra clave abstracta) que amplíe una clase abstracta debe anular todos los métodos abstractos de la clase.
Reglas importantes para los métodos abstractos: 
 

  • Cualquier clase que contenga uno o más métodos abstractos también debe declararse abstracta.
  • Las siguientes son varias combinaciones ilegales de otros modificadores para métodos con respecto al modificador  abstracto :
    1. final
    2. nativo abstracto
    3. abstracto sincronizado
    4. estática abstracta
    5. abstracto privado
    6. Resumen estricto

Considere el siguiente programa Java, que ilustra el uso de palabras clave abstractas con clases y métodos. 
 

Java

// A java program to demonstrate
// use of abstract keyword.
 
// abstract class
abstract class A {
    // abstract method
    // it has no body
    abstract void m1();
 
    // concrete methods are still
    // allowed in abstract classes
    void m2()
    {
        System.out.println("This is "
                           + "a concrete method.");
    }
}
 
// concrete class B
class B extends A {
    // class B must override m1() method
    // otherwise, compile-time
    // exception will be thrown
    void m1()
    {
        System.out.println("B's "
                           + "implementation of m1.");
    }
}
 
// Driver class
public class AbstractDemo {
    public static void main(String args[])
    {
        B b = new B();
        b.m1();
        b.m2();
    }
}

Producción: 

B's implementation of m1.
This is a concrete method.

Nota: aunque las clases abstractas no se pueden usar para crear instancias de objetos, se pueden usar para crear referencias a objetos, porque el enfoque de Java para el polimorfismo en tiempo de ejecución se implementa mediante el uso de referencias de superclases. Por lo tanto, debe ser posible crear una referencia a una clase abstracta para que pueda usarse para apuntar a un objeto de subclase.
 

Publicación traducida automáticamente

Artículo escrito por monster5 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *