Alô, meus alunos! Tá todo mundo aí?
Kaique, nesse caso "felinos" é um tipo de dado da sua aplicação! Sendo assim, como todo felino tem atributos e comportamentos em comum, seria o caso de vc criar uma super classe chamada Felino
que seria estendida por todas as classes de felinos! Ou caso eles só tenham comportamentos em comum, então vc poderia criar uma interface! Então vc teria algo como, considerando que teremos atributos e comportamentos em comum:
public abstract class Felino {
// atributos e comportamentos comuns aos felinos.
}
public class Gato extends Felino {
// atributos e comportamentos dos gatos.
}
public class Leao extends Felino {
// atributos e comportamentos dos leões.
}
public class Leopardo extends Felino {
// atributos e comportamentos dos leopardos.
}
E para criar uma lista de felinos que não aceite um objeto de uma suposta classe Cachorro
que não estende de Felino
:
List<Felino> felinos = new ArrayList<>();
felinos.add( new Gato() ); // ok!
felinos.add( new Leao() ); // ok!
felinos.add( new Leopardo() ); // ok!
felinos.add( new Cachorro() ); // não compila!
Aprendizado para a vida: Validações no front-end são legais pois dão maior fluidez à aplicação! No entanto, seus dados precisam ser sempre validados no back-end em última instância!
Grande abraço, meus alunos! E bons estudos!