¿ clases de Java definen objetos para llevar a cabo tareas de aplicación . Dentro de los proyectos de Java , los programadores definir estos objetos mediante la creación de declaraciones de clases . Una declaración de clase describe las propiedades de las instancias de los objetos de la clase tendrán , así como los métodos que se aplicarán . En la mayoría de los casos , los programas Java pueden crear objetos de ninguna clase con declaraciones de clases descritas . Sin embargo , si una clase es abstracta , no puede ser instanciada . Aplicación
Normalmente, cuando un programa contiene una declaración de clase , otro código puede crear instancias de objetos de la clase se indica en el mismo. Cuando esto ocurre , el objeto resultante contendrá los datos y aplicar los métodos enumerados en la declaración de la clase . Cuando un programa declara una clase como abstracta , esto no puede suceder , ya que no se pueden crear objetos de la clase . El siguiente ejemplo de código muestra declarar una clase como abstracta :
public abstract class GreatHelper
diferencia de clases no abstractas , el proyecto en el que aparece este código no puede crear instancias de objetos " GreatHelper " < . br>
herencia
Aunque los programas no se pueden crear instancias de clases abstractas , pueden extenderlas. Herencia Java permite a los programadores extender declaraciones de clase existentes utilizando la siguiente sintaxis :
public class SpecificHelper extiende GreatHelper
Cuando una clase extiende otra clase, que hereda los métodos y propiedades de la clase padre . Extensión de clases también puede proporcionar 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 herencia , por lo que las subclases de las clases abstractas pueden crear instancias , aunque su padre no puede.
Propósito
clases abstractas permiten a los programadores crear definiciones de conjuntos de objetos que tienen algunas propiedades comunes , pero también algunas diferencias. Las clases abstractas suelen aplicar sólo parcialmente sus responsabilidades , mientras que sus 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 puede aparecer dentro de las clases abstractas , con el requisito de que las subclases se apliquen estos métodos , a menos que ellos también son abstractos .
Alternativas
La principal alternativa a la creación abstracta clases de 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 de funciones como un contrato, la definición de los métodos que las clases que implementan deben proporcionar , pero sin proporcionar detalles de implementación en sí . Una interfaz puede enumerar los métodos que usan sólo sus contornos , con la implementación de las clases que ofrecen los detalles del método . El siguiente código de ejemplo muestra una declaración de clase que implementa una interfaz:
public class SomeHelper extiende HelpfulOrganizer
Dentro de la declaración de interfaz , método contornos pueden aparecer de la siguiente manera :
getWords cadenas públicas ();
A diferencia de las clases abstractas , las interfaces no puede dar detalles de implementación
.