Estou com uma duvida no codigo abaixo:
class Empregado{
public String nome;
public int salario;
public String mostraDetalhes(){
return “sou empregado”;
} }
class Engenheiro extends Empregado{
public int nota;
public String mostraDetalhes(){
return “sou engenheiro”;
} }
class MinhaClasse{
public static void main(String[] args){
Empregado e = new Engenheiro();
if (e instanceof Engenheiro){
System.out.println(“Verdade”);
e.nome=“Paulo”;
e.nota=99;
System.out.println (“O salario:”+e.salario);
System.out.println ("A profissao: "+e.mostraDetalhes());
System.out.println (“A nota:”+nota);
}
else{
System.out.println(“falso”);
}}}
As duvidas são:
a) porque não posso usar e.nota=99; no programa principal? (dá mensagem: “Cannot resolve symbol variable nota”… e no comando System.out.println (“A nota:”+e.mostraDelhes()); não apresenta erro?.
b) nao entendi direito o que é feito no comando “Empregado e = new Engenheiro();”, pois estava acostumado a usar em outros exemplos Empregado e = new Empregado (que significa que declarei um objeto do tipo Empregado e instanciei na memoria para poder usar seu construtor).
Agradeço as dicas e ajudas que vierem… pois tenho muito a aprender ainda.