Ajuda com Herança e Sobreposição

7 respostas
A

Galera n estou entendendo pq neste código ele da a saída

arrrgh

breath of fire

arrrgh

olhem ae

public class MonsterTestDrive { public static void main(String[] args) { Monster [] ma = new Monster[3]; ma[0] = new Vampire(); ma[1] = new Dragon(); ma[2] = new Monster(); for(int x = 0; x < 3; x++) { ma[x].frighten(x); } } }

class Monster { boolean frighten(int z) { System.out.println("arrrgh"); return true; } }

class Vampire extends Monster { boolean frighten(byte b) { System.out.println("a bite?"); return true; } }

class Dragon extends Monster { boolean frighten(int degree) { System.out.println("breath fire"); return true; } }

e tenho outra dúvida seguinte se minha classe vampire sobrepuser o metodo de monster ele vai exibi arrrgh certo ?
e outra dúvida qual a finalidade de se retornar true/false ?

7 Respostas

T

byte != int

A

Hum e qual a finalidade de se retornar um True/False ?

peczenyj

qual a finalidade?

aparentemente nenhuma…

Vecchiato

Se seu vampiro subscrever o método de Monster quando a variavel de referencia “apontar” para um objeto do tipo vampiro ele vai chamar "a bite ? "
a saida seria entao

a bite?
a breath of fire
arghhhhhh

e pelo trecho de código postado o retorno não serve para absolutamente nada. =)

Espero ter ajudado
Abraços

A

Vecchiato:
Se seu vampiro subscrever o método de Monster quando a variavel de referencia “apontar” para um objeto do tipo vampiro ele vai chamar "a bite ? "
a saida seria entao

a bite?
a breath of fire
arghhhhhh

e pelo trecho de código postado o retorno não serve para absolutamente nada. =)

Espero ter ajudado
Abraços

Entendi, mas eu digo o seguinte olhe esse trecho.

class Monster { boolean frighten(int x) { System.out.println("arrrgh"); return false; }

class Vampire extends Monster { boolean scare(int x) System.out.println("a bite?"); return true; }

O método de Vampire sobrepoe o método de Monster, então Monster exibe “arrrgh” ?

peczenyj
class Monstro{
        public String oQueEleFaz(){
                return "ELE Assusta as Pessoas";
        }
}

class Vampiro extends Monstro{
        public String oQueEleFaz(){
                return "ELE Chupa o Sangue das Pessoas!";
        }
}
public class A{
        public static void main(String [] x){
                Monstro godzilla  = new Monstro();
                Vampiro dracula   = new Vampiro();
                Monstro nosferatu = new Vampiro();

                System.out.println("godzilla? " +
                        godzilla.oQueEleFaz());
                System.out.println("dracula? " +
                        dracula.oQueEleFaz());
                System.out.println("nosferato? "+
                        dracula.oQueEleFaz());
        }
}

Executando:

godzilla? ELE Assusta as Pessoas
dracula? ELE Chupa o Sangue das Pessoas!
nosferato? ELE Chupa o Sangue das Pessoas!
thundercas

Mesmo assim cara, qual a finalidade de passar um int como argumento?? Você nem está usando o argumento!!! Sugiro utilizar List ao invés de array, assim será possível verificar dentro da ArrayList se determinado objeto é Vampiro, Dragão ou qqr outra coisa. Sacou?? Pelo array será complicado fazer isso, a não ser que crie 1 array para cada SubClasse de Monster

Criado 21 de novembro de 2007
Ultima resposta 21 de nov. de 2007
Respostas 7
Participantes 5