¿Qué es Is-A-Relationship en Java?

Una relación en Java significa diferentes relaciones entre dos o más clases. Por ejemplo, si una clase Bulb hereda otra clase Device, entonces podemos decir que Bulb tiene una relación con Device, lo que implica que Bulb es un dispositivo.  

En Java, tenemos dos tipos de relación:

  1. Relación IS-A : cuando una clase hereda otra clase, se denomina relación IS-A.
  2. Relación Has-A: Siempre que una instancia de una clase se utiliza en otra clase, se denomina relación HAS-A.

relación es-A 

La relación IS-A está totalmente relacionada con la herencia . Por ejemplo, un kiwi es una fruta; una bombilla es un dispositivo.

  • La relación IS-A se puede lograr simplemente usando extends Keyword.
  • La relación IS-A se utiliza además para la reutilización de código en Java y para evitar la redundancia de código.
  • La relación IS-A es unidireccional, lo que significa que podemos decir que una bombilla es un dispositivo, pero viceversa; un dispositivo es una bombilla no es posible ya que todos los dispositivos no son bombillas.
  • La relación IS-A está estrechamente acoplada, lo que significa que cambiar una entidad afectará a otra entidad.

Ventaja de la relación IS-A 

  • Reutilización de código.
  • Reducir la redundancia.

Cómo lograr la relación ES-A

La relación IS-A se puede lograr simplemente extendiendo una interfaz o clase usando la palabra clave extend.

Comprendamos la relación IS-A con la ayuda de un diagrama de flujo:

En el diagrama de flujo anterior, la clase Bulb amplía la clase Device, lo que implica que Device es la clase principal de Bulb, y se dice que Class Bulb tiene una relación Is-A. Por lo tanto, podemos decir que el dispositivo Bulb Is-A .

Implementación de la relación IS-A

1. Class Device tiene un campo llamado deviceName.

2. La clase Bulb extiende el dispositivo, lo que significa que Bulb es un tipo de dispositivo.

3. Dado que Device es la clase principal, lo que implica que la clase Device puede almacenar la referencia de una instancia de la clase Bulb.

Ejemplo: A continuación se muestra la implementación de la misma, que es la siguiente: 

Java

// Java program to demonstrate the 
// working of the Is-A relationship
  
import java.io.*;
  
// parent class
class Device {
  
    private String deviceName;
  
    public void setDeviceName(String deviceName)
    {
        this.deviceName = deviceName;
    }
  
    public String getDeviceName()
    {
        return this.deviceName + " is a Device";
    }
}
  
// child class
class Bulb extends Device {
    public static void main(String gg[])
    {
        // parent class can store the reference
        // of instance of child classes
        Device device = new Bulb();
        
        // set the device name to bulb
        System.out.println("Device name is Bulb");
        device.setDeviceName("Bulb");
        
        // print the device name
        System.out.println(device.getDeviceName());
    }
}
Producción

Device name is Bulb
Bulb is a Device

En el programa java anterior, la clase Bulb hereda la clase Device. Por lo tanto, podemos decir que Bulbo tiene una relación IS-A con la clase Dispositivo. Por lo tanto, Bulb es un dispositivo.

Publicación traducida automáticamente

Artículo escrito por harshsethi2000 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 *