Trabajar con clases relacionadas en java

Muchas de las clases que verás en Java han creado objetos que se destacan por su cuenta. Sin embargo, el verdadero poder de la programación orientada a objetos reside en su capacidad para crear clases que describen los objetos que están estrechamente relacionados entre sí.

Por ejemplo, pelotas de béisbol son similares a softballs- ambos son tipos específicos de bolas. Cada uno tiene un diámetro y un peso de ambos pueden ser arrojados, atrapado, o golpear. Sin embargo, tienen diferentes características que hacen que se comportan de manera diferente.

Si va a crear un programa que simula la forma en pelotas de béisbol y softball de trabajo, necesita una forma de representar estos dos tipos de bolas. Una opción es crear clases separadas para representar cada tipo de pelota. Estas clases son similares, por lo que sólo se puede copiar la mayor parte del código de una clase a la otra.

Otra opción es utilizar una sola clase para representar ambos tipos de bolas. Luego, se pasa un parámetro al constructor para indicar si hay una instancia de la clase se comporta como una pelota de béisbol o como un softball.

Java tiene dos características de programación orientada a objetos que están diseñadas específicamente para manejar las clases que están relacionados de esta manera: la herencia y las interfaces.

Herencia

Herencia es una técnica de programación orientada a objetos que permite utilizar una clase como la base para otro. La clase existente se denomina clase base, superclase, o de clase padre la nueva clase que se deriva de ella se llama clase derivada, subclase, o clase hija.

Cuando se crea una subclase, la subclase recibe automáticamente todos los métodos y campos definidos por su superclase. Puede utilizar estos métodos y campos tal y como son, o se puede anular a alterar su comportamiento. Además, puede agregar métodos y campos que definen los datos y el comportamiento que es único a la subclase.

Usted podría utilizar la herencia para resolver el problema de béisbol / softbol mediante la creación de una clase llamada Bola que proporciona las características básicas de todos los tipos de bolas y después de usarlo como clase base para las clases separadas nombradas Béisbol y Softbol. Entonces, estas clases podrían invalidar los métodos que deben comportarse de manera diferente para cada tipo de pelota.

Una forma de pensar en la herencia es como una forma de poner en práctica -tipo es una de relaciones. Por ejemplo, una pelota de béisbol es un tipo de pelota, al igual que una pelota de béisbol. Por lo tanto la herencia es un medio adecuado para poner en práctica estas clases relacionadas.

Interfaces

Un interfaz es un conjunto con nombre de método y de campo declaraciones públicas. Tenga en cuenta que la propia interfaz no proporciona ningún código para implementar estos métodos. En su lugar, sólo proporciona las declaraciones. Entonces, una clase que implementos la interfaz proporciona el código para cada uno de los métodos de la interfaz define.

Usted podría utilizar una interfaz para resolver el problema de béisbol / softbol mediante la creación de una interfaz llamada Bola que especifica todos los métodos y campos que una pelota debe tener. A continuación, puede crear la Softbol y Béisbol clases de manera que ambos implementan la Bola interfaz.

Interfaces están estrechamente relacionados con la herencia, pero tienen dos diferencias fundamentales:

  • La interfaz en sí no proporciona código que implemente cualquiera de sus métodos. Una interfaz es sólo un conjunto de métodos y de campo firmas. En contraste, una clase base puede proporcionar la implementación de algunos o todos de sus métodos.
  • Una clase sólo puede tener una clase base. Sin embargo, una clase puede implementar tantas interfaces como sea necesario.



» » » » Trabajar con clases relacionadas en java