Se voce disse que super classe é Funcionario e a subclasse vendedor, voce precisa fazer:
Funcionario f = new Vendedor()
E não ao contrário.
Abracos
Daniel.
R
rodriguz
Opa valeu ae Daniel, mais eu estou fazendo um exercício que diz o seguinte: “é possível criar um objeto da superclasse e armazenar a referência em uma variável da subclasse através do processo de coerção explícita (cast down).”
EDIT: Entendi foi erro meu de interpretação! hehehe Obrigado
danieldomingues86
Ok,
Darei um exemplo simples de downcast para voce ter uma ideia de como funciona:
Object o = new Object();
String s = (String) o;
Veja que primeiro foi criada um objeto, e armazenado em uma referencia, e logo em seguida ele foi atribuido a uma segunda referencia que no caso string, sendo que string é um Object, ou seja Object é superclasse de string.
Abracos
Daniel
R
rodriguz
Valeu ae cara!
rmendes08
Fazendo isso você somente está adiando o erro da compilação para a execução. Por exemplo, a atribuição:
Strings=(String)newObject();
vai lançar uma ClassCastException. Você não pode referenciar um objeto de uma superclasse por uma variável do tipo de uma subclasse. Você somente pode usar coerção explícita quando tem certeza que o objeto convertido é do tipo da variável, exemplo:
Objecto="testeCoerção";Strings=(String)o;
Coerção era muito usada antes de generics, pois uma vez que você adicionava objetos em uma coleção, era a única maneira de recuperá-los. Uma outra situação é resolver chamadas ambíguas de métodos sobrecarregados.