Empleado[] empleados = new Empleado[3];
empleados[0] = new Empleado("Alfredo", 20000, 2020, 6, 01);
empleados[1] = new Empleado("Alejandro", 21000, 2020, 7, 04);
empleados[2] = new Jefatura("Laura", 25000, 2010, 3, 6);
Jefatura jefeRRHH = (Jefatura) empleados[3]; // CASTEO
jefeRRHH.setIncentivo(1000);
Why is it that when i set the incentive for jefeRRHH, empleados[2] is changed? I thought if jefeRRHH was modified this didn't affect the array empleados.
I mean, when I walk the vector with a foreach loop, empleados[2] give me back with the incentive applied.
package poo;
public class test {
    public static void main(String[] args) {
        
        
        String Nombre = "José";
        int j = 1;
        
        String[] nombres = new String[1];
        nombres[0] = Nombre;
        
        int a = j;
        
        Nombre= "Maria";
        
        System.out.println(Nombre);
        System.out.println(nombres[0]);
        
        j=2;
        
        System.out.println(j);
        System.out.println(a);
    }
}
Why isn't the same thing here?
When I declare the new variables I'm not assigning addresses, I'm assigning copies, right?
 
     
    