¿A qué objeto se refiere cuando dice: "este objeto no tiene salario"?
¿A qué objeto se refiere cuando dice: "este objeto no tiene salario"?
Hola César,
Cuando dice "este objeto no tiene salario", se refiere al objeto de la clase Gerente. En el contexto de la lección, el instructor está tratando de acceder a la variable "salario" de la clase Funcionario desde la clase Gerente, que es una subclase de Funcionario. Sin embargo, debido a que "salario" es una variable privada en la clase Funcionario, no puede ser accedida directamente desde la clase Gerente.
public class Funcionario {
private double salario;
// otros métodos y variables
}
public class Gerente extends Funcionario {
// otros métodos y variables
public double getBonificacion() {
return this.salario; // Esto dará un error de compilación
}
}
En este ejemplo, si intentas acceder a "salario" desde el método getBonificacion() en la clase Gerente, obtendrás un error de compilación porque "salario" es privado en la clase Funcionario.
La solución propuesta por el instructor es utilizar el método getSalario() de la clase Funcionario (la clase padre) para obtener el salario. Esto se hace utilizando la palabra clave "super", que se refiere a la clase padre. Aquí está cómo se vería:
public class Funcionario {
private double salario;
public double getSalario() {
return this.salario;
}
// otros métodos y variables
}
public class Gerente extends Funcionario {
// otros métodos y variables
public double getBonificacion() {
return super.getSalario(); // Esto funcionará
}
}
En este caso, "super.getSalario()" está llamando al método getSalario() de la clase Funcionario, que tiene acceso a la variable privada "salario". Por lo tanto, "este objeto" en "este objeto no tiene salario" se refiere al objeto Gerente que está tratando de acceder directamente a la variable privada "salario" en la clase Funcionario.
Espero que esta explicación te haya aclarado la duda. ¡Espero haber ayudado y buenos estudios!