public class Main {
public static void main(String[] args) {
Cachorro cachorro01= new Cachorro("Spike", "Buldog");
Cachorro cachorro02 = new Cachorro("Scoob doo", "Dogue alemao");
ArrayList<Animal> animais = new ArrayList<>();
System.out.println(animais);
// fazendo casting de casting de cachorro para animal
Cachorro cao = new Cachorro();
Animal animal = cao;
System.out.println(cao);
System.out.println(animal);
}
class Animal{
String nome;
public Animal(){
}
public Animal(String nome) {
this.nome = nome;
}
public void fazerBarulho(){
}
@Override
public String toString() {
return "Nome: " + nome;
}
}
class Cachorro extends Animal{
String raca;
public Cachorro(){
super();
}
public Cachorro(String nome, String raca) {
super(nome);
this.raca = raca;
}
@Override
public String toString() {
return super.toString()+ " raca: "+raca;
}
@Override
public void fazerBarulho() {
System.out.println("Latindo");
}
public void cacar(){
System.out.println("Modo cacador ativado");
}
}
}
Boa noite queria entender o porque de ao criar uma classe dentro da classe Main como eu criei a classe Animal e posteriomente eu criei a classe cachorro herdadando de cachorro porem tive que colocar a classe as classes recem criadas com static pois nao compilavam,