0 votos
preguntado por Jimgo Oct 11 en Java

1 Respuesta

0 votos
Mejor respuesta
¿Qué tipo de relación querrías establecer?¿Podrías explicar mínimamente qué es lo que estás intentando hacer?
respondido por elbaraz Oct 12
seleccionada por Ramon [Admin] Oct 14
Buenos días, tengo una clase persona, de ella derivan la clase empleado y la clase cliente, primero creo una persona, despues quiero crear un empleado con referencia a esa persona y ademas crear un cliente con referencia a esa misma persona. o sea la persona es empleado y ademas cliente. JSE. Netbeans.

De antemano gracias.

Hola jimgo. Una forma de hacerlo podría ser la siguiente (qué mejor que un ejemplo para entender):

 

public abstract class Persona 
{
    protected String nombre;
    
    protected String apellido;
    
    protected int edad;
    
    
    public String obtenerNombreCompleto() {
        return nombre + " " + apellido;
    }
    
    public int obtenerEdad() {
        return edad;
    }
    
}

 

public class Empleado extends Persona
{
    
    public Empleado( String nombre, String apellido, int edad ) {
        this.nombre = nombre;
        this.apellido = apellido;
        this.edad = edad;
    }
    
}

 

public class Cliente extends Persona
{
    
    public Cliente( String nombre, String apellido, int edad ) {
        this.nombre = nombre;
        this.apellido = apellido;
        this.edad = edad;
    }
    
}

 

public class Poliformismo 
{
    private static final String NOMBRE = "Agustín";
    
    private static final String APELLIDO = "Gómez";
    
    private static final int EDAD = 21;
    
    
    public static void main( String[] args ) {
        
        Persona empleado = new Empleado( NOMBRE, APELLIDO, EDAD );
        
        Persona cliente = new Cliente( NOMBRE, APELLIDO, EDAD );
        
        System.out.println("********* EMPLEADO ***********");
        System.out.println(empleado.obtenerNombreCompleto());
        System.out.println(empleado.obtenerEdad());
        
        System.out.println("********* CLIENTE ***********");
        System.out.println(cliente.obtenerNombreCompleto());
        System.out.println(empleado.obtenerEdad());
    }
    
}

 

Fijate si te sirve así... depende qué es lo que quieras hacer. También se podrían usar interfaces.

 

Saludos

Agustín

Muchas gracias. Excelente

Elbaraz ha dado una excelente respuesta.

Tienes más ejemplos de crear una relación de padre a hijo (con extends) y de llamar del hijo a padre (con super) en https://jarroba.com/herencia-en-la-programacion-orientada-a-objetos-ejemplo-en-java/