Categories


Dado que las clases abstractas en Java?




Ejecución

Normalmente, cuando un programa contiene una declaración de clase, otro código puede crear instancias de objetos de la clase señalados en el mismo. Cuando esto ocurre, el objeto resultante contendrá los datos y poner en práctica los métodos que figuran en la declaración de clase. Cuando un programa declara una clase como abstracta, esto no puede suceder, porque no se puede crear objetos de la clase. El ejemplo de código siguiente se muestra la declaración de una clase abstracta:

abstract public class GreatHelper

A diferencia de las clases no abstractas, el proyecto en el que el código aparezca " GreatHelper " no puede crear instancias de objetos.

Herencia

Aunque los programas no se pueden crear instancias de clases abstractas pueden extenderlas. La herencia permite a los programadores de Java para extender declaraciones de clase existentes utilizando la siguiente sintaxis:

public class SpecificHelper GreatHelper

Cuando una clase extiende otra clase, que hereda los métodos y propiedades de la clase padre. Extienda las clases también pueden proporcionar una funcionalidad adicional en la parte superior de las variables y métodos heredados superclase. Por lo tanto, la herencia es una manera de proporcionar una funcionalidad especializada, con subclases especializadas dentro de un área de responsabilidad cubiertos en general por la clase padre. Con una clase abstracta, este principio también se aplica a la sucesión, por lo que las subclases de las clases abstractas se pueden crear instancias, aun cuando sus padres no pueden.

Propósito

Las clases abstractas permiten a los programadores crear definiciones de conjuntos de objetos que tienen algunas propiedades en común, pero también algunas diferencias. Las clases abstractas suelen aplicar sólo una parte de sus responsabilidades, mientras que las subclases pueden proporcionar una implementación más detallada se adapte a las circunstancias específicas. Las clases abstractas pueden contener ambos métodos abstractos y no abstracta. Los métodos abstractos sólo pueden aparecer dentro de las clases abstractas, con el requisito de que las subclases de poner en práctica estos métodos, a menos que ellos también son abstractas.

Alternativas

La principal alternativa a la creación de las clases abstractas en Java es la creación de interfaces. Cuando un programa incluye una interfaz, declaraciones de clase pueden implementar esta interfaz, en lugar de extender, como en el caso de una clase abstracta. Una interfaz funciona como un contrato, que define las clases de métodos que deben proporcionar la aplicación, pero sin proporcionar detalles de la aplicación en sí. Una interfaz puede enumerar los métodos que utilizan sólo sus contornos, con clases de implementación que proporcionan los detalles del método. El ejemplo de código siguiente se muestra una declaración de una clase que implementa la interfaz:

public class SomeHelper HelpfulOrganizer

Dentro de la declaración de interfaz, método contornos pueden aparecer de la siguiente manera:

public String getWords ();

A diferencia de las clases abstractas, interfaces no pueden proporcionar los detalles de la implementación.