Exercicio Livro Kathy Sierra [Resolvido]

4 respostas
evertonsilvagomesjav

Bom galera tenho as tres classes

package com.teste;

public class Mammal {

	String name = "furry";
	
	String makeNoise(){
		
		return "generic noise";
		
	}
	
}
package com.teste;

public class Zebra extends Mammal {

	String name = "Stripes ";
	
	String makeNoise(){
		
		return "Bray";
	}
	
}
package com.teste;

public class Zookeper {

	public static void main(String[] args) {
		
		new Zookeper().go();
				
	}
	
	void go(){
		
		Mammal m = new Zebra();
		
		System.out.println(m.name + m.makeNoise());
		
	}

	
}

De acordo com o livro a saída é:

Furry bray

So que eu to com mta duvida em saber quando eu tenho um objeto dessa forma, quando ele vai chamar o metodo de Mammal quando ele vai chamar de Zebra. Por favor galera ajudam ai essa cabecinha aqui humilde.

Mammal m = new Zebra();

4 Respostas

nel

Boa noite.

Já fez um teste para tirar suas conclusões? :slight_smile:

Mas assim: Mammal m = new Zebra();

m é do tipo Mammal mas faz referência a classe Zebra, portanto, ele invoca o método contido em Zebra. Faça o teste e confirme isso ok?
Abraços

evertonsilvagomesjav

o nel brigadao pela explicaçao, tem um Brother meu renamed aqui do guj me deu umas aulas boas kkk

Mammal m = new Zebra()

Usa-se polimorfismo pra metodos subescritos por isso ele vai procurar o metodo no objeto Zebra().

vlw galera!!!

edit:

erros de portugues kkk

nel

Eu tinha 99% de certeza do que eu te disse mas uma explicação dessas eu não saberia dar rs.
Interessante estes exercícios, é isso ai.

Abraços.

evertonsilvagomesjav

ehehe tem uns exercicios aqui bons, outra coisa vou deixar aqui talvez ate ajuda alguem.

excessões de polimorfismo ou seja, polimorfismo so funciona para metodos de instancia e nao para metodos staticos.

vivendo, estudando e aprendendo ehehe.

Criado 6 de novembro de 2009
Ultima resposta 6 de nov. de 2009
Respostas 4
Participantes 2