[Música] [Música] olá pequeno gafanhoto seja bem vindo a mais uma aula de seu curso de programação orientada a objeto em java meu nome gustavo guanabara eu sou professor e agora nós chegamos à décima terceira aula essa é a aula treze b onde nós vamos falar sobre polimorfismo essa é a segunda parte diretamente na linguagem java é muito importante que você tenha assistido a aula 13a porque lá a gente falou os conceitos todos os explicar dinho's expliquei várias vezes exemplifiquei mostrei como é que funciona e agora nós só vamos colocar a mão na massa e ver
tudo isso em java apenas dando uma breve recordada pra você poder entender relembrar os tipos de polimorfismo nós temos o polimorfismo de sobreposição e o polimorfismo de sobrecarga o polimorfismo de sobreposição acontece quando nós temos a mesma assinatura onde sobrecarga quando nós temos assinaturas diferentes a sobreposição ocorre nem classes diferentes ea sobrecarga ela ocorre dentro da mesma classe tudo isso foi exemplificado tudo isso foi explicado detalhadamente durante a aula 13a se você não assistiu ou se você já assistiu há bastante tempo e não lembra ou se você assistiu e não entendeu direito não aplicar aqui
em cima há quem se você vai ter a playlist da programação dentro do objeto em java e lá você pode acessar aula 13a onde você vai esclarecer todas as suas dúvidas antes de colocar em prática aqui com a gente durante a aula anterior durante a aula 13 a nós vimos também o exemplo que a gente vai procurar que a gente vai colocar na prática nós temos um mamífero que emite som o globo também vai sobrepor à emissão de som e o cachorro também vai sobrepor à emissão de som que foi sobreposta diretamente do lobo por
exemplo que eu quero é o seguinte se eu tiver um mamífero ele vai emitir o som de mamífero se eu tiver um longo e vai fazer e se tiver um cachorro vai fazer a beleza o código que a gente utilizou na aula anterior na aula teórica foi exatamente esse aqui então vamos fazer o seguinte abriu seu netbeans não adianta você ficar só assistindo à aula você tem que colocar em prática abril o netbeans aí vamos criar um projeto novo já estou aqui dentro do meio ambiente vou criar um projeto novo a aplicação java nós vamos
criar aqui aula 13 deixar marcado criar classe principal cliquei finalizar ele vai criar os arquivos aqui dentro e eu já tenho a minha classe aula 13 que aqui é o meu método principal aqui é meu programa principal o que eu vou fazer você está acompanhando aqui do lado nós vamos criar a classe animal então vamos abrir o projeto aula 13 no pacote que o botão direito novo classe java nós vamos criar aqui um animal aqui na classe animal tem os atributos protegida peso protegido idade e protegido membros temos também um método público é abstrato é
colocar aqui a classe abstrata também lembrando só posso ter métodos abstratos dentro de classe abstrata emitir som já está lá criei minha classe animal agora que eu vou fazer é criar a classe mamífero não vou vir aqui projeto botão direito na aula 13 nova classe ea classe mamífero não utiliza assento mamífero vai ter protegida stream cor do pêlo é só olhar do lado você vai ver ele também ex tênis animal na hora que estende o animal ele vai me pedir para implementar o método abstrata aqui olha já deu outro raid emite som apaguei a linha
que estava aqui disparando uma exceção botei aqui o a sobreposição ou verdade é sobrepor não tenho aqui uma emissão do mamífero vai ser escrever na tela som do nome frio sondhi mamífero pode botar sendo sempre o ninho é só você comparar aqui essa solução com o que está aparecendo aqui do lado da tela exatamente a mesma coisa vamos agora criar a classe lobo o novo classe lobo o bom no o ex-tenista mamífero ele não reclamou aqui pedindo pra reimplementar e eu vou criar também a classe cachorro vamos lá cachorro que também ex tênis lobo não
tá lá se eu vier aqui no meu programa principal eu posso criar um cachorro novo vou criar aqui um animal ou crac x animal x é um meio animal a gente vai receber um erro né dizendo que o animal é uma classe abstrata e não pode ser instance ada se eu criar um mamífero ele deixou criar seu mandato emitir som à x ponto emitir som se o xv edição ele vai escrever são os mamíferos se transformar esse xis aqui para lobo mandar emite som ele vai fazer só os mamíferos isso porque eu não sobrepôs ainda
no método lá na classe lobo vamos fazer isso na minha classe lobo eu vou sobrepor o meu método da black void emitir som tem que ser a mesma assinatura ele não reclamou se eu botar assinatura diferente por exemplo n é um valor inteiro ele já deu erro em cima porque isso não é um ovo raid você tem que ter a mesma assinatura lado da sua mãe então tá aqui ó a mãe de novo é mamífero aqui ó lembro que volte a emitir som é um tem que ser próprio que pode emitir som é exatamente a
mesma coisa só que aqui no lugar do globo eu vou mandar escrever vou salvar na hora que eu executar aqui mandar o lobo emite som a ele já substituiu a gente viu isso na anterior se eu criar um cachorro se x foi um cachorro e eu mandar emite som ele fez o mesmo som de lobo isso porque o cachorro não está sobre escrevendo mas vamos sobre escrever só se você esqueceu o raid por aqui ó black void emitir som mesma assinatura ele vai reclamar na hora que eu colocar a publicar aqui ele vai perguntar adicione
a anotação a verdade por favor aí vai lá e adiciona pra mim eu vou escrever é o melhor sou eu lendo os on line salvar na hora que eu executar ele porque ele é um cachorro certo então eu consigo de acordo aqui no meu programa principal de acordo com a classe eu consigo a emissão de som é relativa a um animal que eu criei aqui então eu implementei a herança implementei a sobreposição é exatamente o código está aparecendo aqui nós fizemos em java porém essa aula que não é de sobreposição essa aula é de sobrecarga
e durante a aula teórica aula 13a a gente vê o exemplo do reação do reagir então nós vamos ter um método reagir do cachorro e esse método reagir vai acontecer de acordo com alguns parâmetros por exemplo de acordo com uma frase de acordo com o horário do dia de acordo com o dono se é ou não o dono é que vai interagir com ele e de acordo com a idade e peso do cachorro tudo isso vai interferir na reação que ele faz o código para isso foi simples a gente viu uma passada aqui do lado
e ele vai ficar pra gente poder replicar ele diretamente no java então o que nós vamos fazer aqui é criar dentro da classe cachorro um método de reação tão vamos criar aqui ó publique void reagir tal criou reagir daqui sem parâmetro se eu tentar criar de novo a public void reagir ele vai dar problema ó vai dizer que se esse método já existe mas se eu colocar assinaturas diferentes por exemplo aqui ó strang frase e aqui dentro vou botar em 20 hora minuto exatamente como tá ali do lado a gente olha gente minuto lá ele
já não reclama mais vamos colocar aqui é do dono pulenta do ano já é outra assinatura ele deixou sem problema nenhum e vou criar mais um aqui agora com a idade e peso ou abre o bloco aqui ele não vai reclamar também eu tenho a mesma assinatura vou fazer alguns exemplos aqui para mostrar coisas da assinatura para vocês olha só se você vir aqui vou criar um outro reage aqui a black void reagir e e se reagir eu vou colocar com dois valores inteiros botarem x 20 para eu deixar em x ele deixa sem problema
nenhum se eu botar em y falar mas eu não tenho 20 x e y só que ela e lhe deu um erro porque você tá repetindo uma assinatura lembrando apenas a assinatura é a quantidade eo tipo de parâmetros é uma comparada aqui comigo olha só eu tenho aqui ó reagir recebendo dois parâmetros inteiros exatamente a mesma assinatura desse aqui de cima por mais que os parâmetros têm nomes diferentes o que vale é a quantidade e o tipo então eu não posso ter dois inteiros mas nada me impede de ter um flautim e o inteiro para
falar não mas está batendo com esse daqui não eu primeiro vou informá lo inteiro depois o flu diack primeiro flowd depois o inteiro outra coisa que não faz diferença por exemplo se eu voltar aqui como inteiro ele aceita a por exemplo vou colocar aqui 20 x em ny ele não está deixando mesmo que o tipo de retorno seja diferente vou botar aqui stream ele não vai deixar por que não pode é independente do tipo de retorno ele não vai permitir aqui se eu transformar isso aqui não só sem problema nenhum posso até usar o mesmo
nome por exemplo mim sem problema nenhum e deixou contanto que eu não tenha quantidade e tipos diferentes no meu caso aqui nós vamos fazer só essas quatro maneiras de reação a reação por frase por ora por dono e por idade peso ficou claro essa coisa da sobrecarga e comparação com sobreposição todos esses métodos estão na mesma classe então ele é sobrecarga e pra finalizar vamos implementar todos esses métodos aqui eu já aqui do lado vamos colocar isso diretamente no java primeiro vamos pra frase aqui se a minha frase for igual lembra que gostam dois iguais
uma comida ou então o bolsão 2 país né a frase é igual ao lá você pode botar outra saque por exemplo ou o ou a frase é igual a cheguei nessa pode colocar o que você quiser no meu caso eu não vou entrar muito porque senão vai ficar escrevendo por baixo do código então se é que foi uma frase agradável ele vai abanar e latir senão ele vai cuidar da beleza já implementou o meu aqui à tarde está reclamando aqui em cima para não usar o igual ao usual e com gols se for igual à
toma comida a gente fazer isso aqui também olá pontue kohls olá essa jacque strong é um objeto é o frase é um objecto do tipo da classe stream então era utilizar o método ícones para comparar então fiz o primeiro vamos ao segundo aqui de acordo com a hora do ataque o chelsea se a hora for menor que 12 exatamente o que está ali ele vai simplesmente abanar o rabo se não se a hora foi acima de 18 que vai ignorar porque já de noite se não que agora à tarde né ele vai abanar latir só
comparar o pintado lado e vê que está ficando igualzinho agora vamos reagir de acordo com o dono se dono foi 4 ou você simplesmente bota se dono sem problema nenhum ele vai abanar senão ele vai hoje na e latir beleza é só comparar o que você tinha feito aqui no código com o que está feito aqui na lateral chegou a hora de fazer o último método que é este aqui do lado então eu tenho lá o reagir de acordo com a idade com peso vou deixar aqui do lado a gente poder fazer de acordo com
a idade peso e se aqui ó se se você botar assim ó e fells itabi a ele vai preencher um nicho com elas para você aqui se a idade for abaixo de 5 é de cachorro for novinho vou fazer um outro chelsea aqui já coloquei o chelsea aqui dentro que esse é o de peso se o peso foi abaixo de 10 ele vai escrever alguma coisa senão ele vai escrever outra coisa então se o peso abaixo 10 ele for novo e pesar pouco ele vai abandonar senão ele vai latir só comparar com o que está
ali do outro lado esse é que se ele não for lovin se ele for velho ou criar outro o chelsea aqui mesma coisa se o peso for menor que 10 só aqueles se ele for mais velho e leve que vai escrever alguma coisa senão ele vai escrever outro aqui em cima é hoje na e aqui é ignorar mais uma vez comparou que está aqui conquistar aqui do lado e você vai ver que é exatamente a mesma coisa e agora chegou o grande momento aquele momento em que a gente vai experimentar as coisas funcionando esse aqui
é o código principal que a gente vai fazer exatamente a mesma coisa e ver se os resultados são exatamente os mesmos então vou vir aqui na aula três meu programa principal já vou criar será que como cachorro e nós vamos fazer o seguinte ó primeiro comando ou criar uma relação a voltar a reagir ele já me diz o pole morfina que eu tenho várias maneiras de reagir reagir como stream é de comboiando reagir com inteiro eu tenho várias aqui vou reagir com frase então clique em cima ele vai reagir ao olá quando eu mando reagir
ao golo lá vou executar aqui o ele está a banana e latindo que é exatamente o resultado que está prevista no canto se eu colocar vai apanhar que é uma frase agressiva ele vai originar pra mim exatamente também o que está previsto diretamente doado vou fazer duas reações aqui ó 11,45 esse ponto reagir 1900 coloquei até errada aqui mas sem problema 19 00 vamos executar ele quer abandonar ignorar é só olhar a lateral e ver que realmente essas duas têm essas reações abanar ignorar vamos agora as reações lógicas né se eu for o dono ó
é o dono é é o dono não pra quem é dono a reação e abanar para quem não é originária tinha outra coisa que você pode fazer é aqui por exemplo toda vez que for latir botar aquino do dono não reagir de acordo com o dono aqui sempre foi notícia pode foi assim ó disse ponto emitir som que é o que vai fazer a ele vai hoje latina vai mostrá-lo no caso aqui não está no nosso exercício eu vou tirar você pode a qualquer momento chamar métodos modificar tributos é porque a maneira mais simples aqui
é consiste em alte mas você pode fazer qualquer coisa e programação orientada a objetos e por fim vão fazer lá 2,12 pontos 5 então é fininho aqui e 17,4 pontos cinco à reação que está previsto ali do lado é primeiro latir e depois hoje na alguém aqui falar primeiro latir depois na viu como tudo funcionou perfeitamente viu como a linguagem de programação reagiu exatamente da mesma maneira como eu previ na loja conceitual se você sabe a teoria tudo vai funcionar na prática sem problema nenhum eu espero que você tenha entendido eu espero que você tenha
compreendido esse último conceito que é de polimorfismo de sobrecarga eu te espero na próxima aula onde a gente vai começar a fazer um grande exercício entre a montar um exercício grande compondo tudo aquilo que a gente aprendeu durante esse curso de programação orientada a objeto e o que eu tenho pra fazer são sempre os mesmos convites se inscrever no canal apertar o cilindro lado porque sempre que tiver uma nova você vai ficar sabendo o youtube está meio enrolado com essas coisas a gente precisa muito que você volte sempre no canal você veja porque está lançando
os vídeos novos as propostas estão fazendo muito vídeo interessante um visita o canal navega lá que a gente tenta manter tudo organizado mais uma vez eu quero te chamar para visitar o nosso site e para ver as playlists estoque em cima do resende interatividade você vê as playlists de todas as linguagens de programação que a gente já tem até agora principalmente o curso de programação orientada a objeto em java e o curso de programação orientada a objeto em php a gente se vê na próxima aula onde a gente vai fazer muitos exercícios conceituais e práticos
diretamente na linguagem que você escolheu um forte abraço e até a próxima [Música]