Trabajar con clases relacionadas en java

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

Video: Java - Clase y Objetos

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 que ambos pueden ser lanzados, atrapado, o golpear. Sin embargo, tienen características diferentes 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 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. A continuación, se pasa un parámetro al constructor para indicar si una instancia de la clase se comporta como una pelota de béisbol o como una pelota de béisbol.

Java tiene dos características de programación orientada a objetos que están diseñados 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 le permite utilizar una clase como base para otro. La clase existente se denomina clase base, superclase, o padres de clase la nueva clase que se deriva de ella se llama el 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 los puede sustituir a alterar su comportamiento. Además, puede agregar métodos y campos de datos que definen el comportamiento y que es único a la subclase.

Se podría utilizar la herencia para resolver el problema de béisbol / softbol mediante la creación de una clase llamada Pelota 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 llamadas Béisbol y Sofbol. Entonces, estas clases podrían invalidar los métodos que deben comportarse de manera diferente para cada tipo de pelota.

Una manera de pensar de la herencia es como una forma de poner en práctica es-a-tipo-de relaciones. Por ejemplo, una pelota de béisbol es un tipo de balón, como es una pelota de béisbol. Por lo tanto la herencia es una forma adecuada de poner en práctica estas clases relacionadas.

Interfaces

Un interfaz es un conjunto con nombre de declaraciones de métodos y de campo públicas. Tenga en cuenta que la interfaz no proporciona ningún código para poner en práctica esos métodos. En su lugar, sólo proporciona las declaraciones. A continuación, una clase que implementos la interfaz proporciona el código para cada uno de los métodos de la interfaz define.

Video: Tutorial 2 java NetBeans - Clases, objetos, métodos (If -Else)

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

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

  • La interfaz en sí misma no proporciona código que implementa cualquiera de sus métodos. Una interfaz es sólo un conjunto de métodos y de campo firmas. Por el contrario, una clase base puede proporcionar la aplicación de todas o algunas de sus métodos.
  • Una clase puede tener sólo una clase base. Sin embargo, una clase puede implementar tantas interfaces como sea necesario.
Artículos Relacionados