Isso acontece pq o classe Matriz não tem o método imprimeTodos, vc declarou a variável com o nome filial, mas o tipo dela é matriz… sendo assim vc só pode acessar os método definidos pela Matriz e suas superclasses…
Se vc quiser utilizar o método imprimeTodos tem que declarar a variável com o tipo Filial, e não Matriz… Lembrando que os tipos são resolvidos estaticamente durante a compilação, logo não importa o tipo de objeto que está “contido” na variável, mas sim o tipo da variável.
Andre_Fonseca
Cosmo:
Galera... não estou entendendo pq este código abaixo não compila: :(
O objeto filial não possui o método imprimetodos()
Acho que você está tentando usar polimorfismo que significa que um objeto de um tipo se comporta de outra forma..
um jeito de você resolver isso seria transformando Matriz em uma interface assim:
package relaciona;
public interface Matriz {
public String diretorgeral = "Átila Palmeira";
public String tempo = "1o anos";
public void imprime();
public void imprimeTodos();
}
Então como eu não estou chamando um método com a mesma assinatura que eu tenho em minha SuperClasse numca irá funcionar e isso tbm vale para atributos.