Implemente as classes abaixo:
Passo 1
E aí, beleza?!
Essa questão mostra pra gente um esquema que contém três classe: , e , mostrando os métodos e atributos de cada classe. E o mais interessante, é que mostra que as classes e são herdeiras da classe base .
A questão pede pra gente implementar as classes mães e as classes filhas.
Mas vamos começar com o cabeçalho do código. Analisando o esquema, você vai notar que temos os atributos e que são do tipo string. Então vamos precisar incluir o cabeçalho
Passo 2
Vamos começar implementando a classe mãe
Dando uma olhada no esqueminha fornecido na questão, a gente possui dois atributos públicos do tipo string e . Vamos implementar
Também temos métodos publicos, um construtor sobrecarregado e o método . Quando o construtor não recebe parâmetros os dois atributos são iniciados com strings vazias. Quando o construtor recebe um parâmetro, o valor do atributo nome é preenchido.
Acontece que construtores sobrecarregados não funcionam muito bem com herança. Porém, podemos usar um construtor com valor padrão e terá o mesmo efeito. Lembre-se, o construtor é um método sem tipo com o mesmo nome da classe. Para fazer um construtor com parâmetro padronizado, é só usar o operador após os parâmetros na declaração do método.
No nosso código, o construtor terá apenas um único parâmetro:
Por fim, a gente tem de implementar o método esse método não recebe e nem retorna nada, então deve ser do tipo com parêntesis vazios. Esse método vai imprimir uma mensagem que informa o nome do animal e que ele está caminhando
Passo 3
Agora vamos pra parte mais legal da questão. Vamos construir uma classe filha chamada que herda a classe . Lembre-se, a gente efetua a herança no momento da criação da classe filha assim:
No código fica:
A classe mãe possui um construtor. Então vamos criar um construtor na classe filha que utiliza o construtor da classe mãe. Fazemos da seguinte maneira:
O ponto crucial é que a classe mãe usa um construtor com valor padronizado. Então o construtor da classe filha também deve ter um valor padronizado:
E olha que legal. Como todos os parâmetros já são iniciados dentro da classe mãe, então o construtor da classe filha pode ficar vazio.
Agora a classe foi criada e já possui os atributos e métodos que foram herdados da classe mãe, e já está com o construtor definido. Só falta adicionar o método . Esse método não recebe e nem retorna nenhum valor, apenas imprime uma “frase” emitida pelo cachorro:
Passo 4
A segunda classe filha é a classe que é essencialmente igual à classe . Então começamos efetuando a herança no momento da criação da classe
No código fica:
O construtor deve seguir o mesmo padrão do construtor da classe mãe. Então faremos um construtor para a classe usando parâmetros padronizados:
De novo, a gente não precisa preencher o construtor, pois todos os atributos já foram preenchidos no construtor da classe mãe.
E pra terminar a classe, vamos desenvolver o método que imprime um miado: