Superclasse e Subclasse

Gente, to começando java agora, e tenho um exercício pra fazer, porem perdi a aula deste dia, gostaria de ajuda aqui.[i] :cry:

Tenho a Superclasse Animais (nesta defino se os animais são macho ou fêmea)

Tenho a Subclasse Terrestre ( onde defino se o animal é herbívoro ou carnívoro)

Tenho a Subclasse Aquatico (onde defino se o animal vive em agua doçe ou salgada)

Eu tentei diversas vezes, mas como nao peguei o conteudo da aula, nao consegui.
Fico agradescido desde jah… :smiley:

Olá ValterCEC!
vc perdeu uma aula sobre herança, uma das características da orientação a objetos!
O que vc precisa pesquisar é sobre a palavra chave extends
da uma olhada nesses links:
http://xahlee.org/java-a-day/extend.html
http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html
http://www.javacoffeebreak.com/java104/java104.html
http://www.tiexpert.net/programacao/java/heranca.php

provavelmente foi sobre isso que seu professor falou e vc perdeu :smiley:

Coincidencia, também estou nessa parte em meu curso e perdi essa aula. Mas eu tava lendo a apostila do curso a Java OO da Caelum e aprendi isso só de ler lá.

É uma boa idéia você dar uma lida nesta da Caelum, tem umas dicas muitoo boas!

:wink:

Mas o básico de herança é o seguinte.

Vc criou a classe Animal.

Em seguida vc cria a classe Terrestre, usando a palavra chave extends que o user acima citou.

E assim também faz com as outras, todas sendo extends da superclasse Animal.

Aí na classe Animal vc coloca atributos que são comuns a todos os tipos de animais, e nas subclasse, atributos mais particulares a determinados animais que vc deseja listar. Lembrando que todos os atributos da superclasse Animal serão herdados por todas as subclasses dela, e os métodos também, sendo que você pode sobrescrever os métodos da superclasse para refinar mais “as açoes que seu animal vai exercer”…

A base é isso, já fiz duas listas de exercícios no curso e ainda estou pegando os macetes, mas a base é isso.

:smiley:

1 curtida

Ficará + ou - assim:

//Superclasse
Public class Animais {

      private final String sexo; //poderia ser char ou boolean

      public Animais (String sexo) {
            this.sexo=sexo;
      }

      public String getSexo() {
            return sexo;
      }
}
//Subclasse
Public class Terrestre extends Animais {

      private String alimento;

      public Terrestre (String sexo, String alimento) {
            super(sexo);//passa parâmetro para o construtor da superclasse 
            this.alimento=alimento;
      }

      public void setAlimento(String alimento) {
            this.alimento=alimento;          
      }

      public String getAlimento() {
            return alimento;        
      }
      
}
//Subclasse
Public class Aquatico extends Animais {

      private String habitat;

      public Aquatico (String sexo, String habitat) {
            super(sexo);//passa parâmetro para o construtor da superclasse 
            this.habitat=habitat;
      }

      public String setHabitat(String habitat) {
            this.habitat=habitat;          
      }

      public void getHabitat() {
            return habitat;          
      }
}

Assim suas subclasses Terrestre e Aquatico terão acesso ao método getSexo(); da superclasse Animais, porém os gets e sets das subclasses Terrestre e Aquatico serão exclusivas delas.

:thumbup: