LINGUAGEM TÉCNICA DE PROGRAMAÇÃO I JAVA I Herança, Sobreescrita (override) e Sobrecarga (overload) Herança No paradigma orientado a objetos podemos definir um conjunto de classes em uma estrutura hierárquica onde cada uma das classes “herda” características da suas superiores nesta estrutura. Herança 1 - Crie uma hierarquia de classes conforme abaixo com os seguintes atributos e comportamentos (observe a tabela), utilize os seus conhecimentos e distribua as características de forma que tudo o que for comum a todos os animais fique na classe Animal: Cachorro Cavalo Preguica Possui Nome Possui Nome Possui Nome Possui Idade Possui Idade Possui Idade Deve emitir som Deve emitir som Deve emitir som Deve correr Deve correr Deve subir em árvores Herança Agora crie um programa (uma classe com método main()) que execute em seguida as seguintes ações: O cavalo deve emitir um som, ou seja, deve executar o método emitirSom() O cachorro deve correr, ou seja, deve executar o método correr() A preguiça deve subir na árvore Sobreescrita A sobreescrita de métodos é uma característica que permite alteração do comportamento de uma classe pai pelas suas classes filhas Para tanto, deve-se reescrever o método que deseja que se apresente diferente dentro da classe filha Com a cláusula super, podemos executar também o método herdado da classe pai junto com o método sobreescrito Sobreescrita Agora, voltando ao exercício anterior, implemente as seguintes sobreescritas e chamadas de execução: O cavalo deve emitir um som diferente do que está definido na classe Pai O cachorro deve correr, latir (imprimir na tela “au, au”) e depois falar “Sou um animal!!!” (ou seja, também imprimir na tela) A preguiça deve emitir o som: “Estou cansada...” e, em seguida, deve subir na árvore Sobrecarga O Java permite que você tenha métodos com o mesmo nome, mas com assinaturas diferentes, isto chama-se sobrecarga. É muito semelhante à sobreescrita, porém, na sobrecarga são repassados parâmetros para o método que está fazendo a sobrecarga O interpretador determinará qual método deve ser invocado pelo tipo de parâmetro passado. Sobrecarga Agora, voltando ao exercício anterior, implemente as seguintes sobrecargas: Altere o método emitirSom ()sobreescrito (com override) na classe Cachorro de forma que ele possa receber como parâmetro o texto “Au, au!!”; Faça a sobrecarga na classe Preguica no método subirEmArvores() de forma que ela diga se está subindo rápido ou se está subindo devagar Faça a sobrecarga do método correr() definindo o recebimento de um parâmetro que informe a velocidade da corrida. Exercício Crie um programa que calcule o salário final dos vendedores de uma firma de acordo com a função de cada um: Vendedor externo: salário + comissão + gasolina; Vendedor interno: salário + comissão + vale-transporte Para o cálculo da comissão: vendas iguais ou acima de R$ 1000,00 – comissão de 10% das vendas Vendas abaixo de R$ 1000,00 – comissão de 7% das vendas O programa deve solicitar o salário base, o valor da gasolina (se vendedor externo) e o valor do vale-transporte (se vendedor interno)