Curso POO Java #11b - Herança (Parte 2)

105.5k views3099 WordsCopy TextShare
Curso em Vídeo
Nessa aula de POO com Java, vamos aprender a colocar a Herança em prática, usando as técnicas de Her...
Video Transcript:
[Música] Olá pequeno gafanhoto seja bem-vindo a mais uma aula do seu curso de programação orientada objeto com Java o meu nome é Gustavo Guanabara eu sou seu professor e agora a gente chegou à aula 11b que é a aula onde a gente vai tratar a parte de herança o que a gente viu na aula anterior sobre herança que é a segunda parte agora implementado em Java e dessa vez mais do que nunca eu tenho que te alertar não adianta você pular a aula teórica essa aula conceitual mostrou muitas teorias muitos conceitos que você vai precisar para essa aula eu vou botar aqui do lado só uma lista dá uma olhada no que eu falei eu falei de superclasse subclasse ancestral descendente classe raiz classe folha generalização especialização tipo de erança classe abstrata método abstrato classe final e método final se você não sabe o que que é isso meu filho você perdeu isso isso tudo foi visto em uma só aula uma aula conceitual de programação unar do objeto que foi a aula 11 a então dá essa moral pra gente dá essa moral pros seus estudos clica lá em cima no Zin de interatividade lá você vai pra sua playlist né da linguagem que você escolheu e assiste a aula 11 a se você não tiver o conceito da aula 10 a e da aula 11 a não adianta assistir essa 11b porque senão ela vai ficar mais difícil você vai falar programação orientada objeto é difícil não querido você pulou Passos você tá tentando roubar no seu ensino e o último lugar onde a gente pode tentar ser esperto É nos estudos se você tentar fazer isso você não vai aprender mas se você já fez tudo se você já assistiu você já reviu a aula como eu como eu falei lá na aula 11 a eu falei vê e revê Porque é importante você viu reviu fez tudo chegou aqui chegou aqui todo bonitinho tudo organizado Vamos aprender a fazer isso tudo aqui em Java e vamos começar mostrando aquele nosso exemplo Então essa aqui é a árvore hierárquica é a árvore de heranças que a gente vai implementar agora em Java então eu tenho pessoa eu tenho visitante aluno e professor que erdam de pessoa e eu tenho bolsista e técnico que erdam de aluno a gente viu os conceitos de herança de implementação e herança para diferença né a gente viu lá que entre visitante e pessoa a gente tem uma herança de implementação e entre aluno e pessoa por exemplo ou entre bolsista e aluno a gente tem uma herança para a diferença e a gente viu também que ali em bolsista eu tenho uma sobreposição a gente vai ver como é que faz isso em Java agora nessa aula então abre o seu Net bein porque a gente tem muita coisa para fazer o código aquele que fica aí sempre tá aqui do lado então eu vou deixar o código aqui do lado pra gente poder partir esse é só um trecho do código a gente vai colocar isso em prática agora em Java você vai ver que isso aqui funciona a gente volta lá para aquele diagrama pra gente ver como é que se implementa o resto da hierarquia dessa árvore que a gente imaginou para esse exercício Então vamos deixar o código aqui abrir o netbeans e vamos trabalhar uma vez no netbeans Vamos criar um projeto novo então V lá Projeto Novo uma aplicação Java e eu vou chamar essa aplicação de aula 11 aula 011 nossa aula 011 ela vai ser a nossa aula vou criar a classe principal finalizar ele vai criar Em alguns instantes aqui pronto já criou para mim o projeto Então já tô aqui com o meu método principal e vamos criar as nossas classes vou abrir aqui a área de projetos dentro do pacote da aula 011 vou clicar com o botão direito novo Classe Java e eu vou chamar ele de pessoa vou criar aqui a classe pessoa e se você olhar ele do lado ele é uma classe abstrata Então vou botar aqui abstract a minha classe pessoa vai ter nome dade sexo tudo privado nome idade e Sexo beleza por ele ser privado eu vou botão direito aqui inserir código vou inserir todos os getters e sets de todos esses atributos e eu também vou ter o método aqui que é o método de fazer aniversário então vou criar aqui Public vo fazer aniversário já tenho aqui o método método de fazer aniversário é des idade mais mais pronto mais um ano aqui então essa aqui é minha classe no código aqui do lado não tem os Gets e sets mas a gente viu isso na aula anterior a gente já sabe como funciona o negócio Vamos fazer um exemplo aqui aquele exemplo que a gente fez anteriormente aquele que tá aparecendo aqui embaixo você não pode instanciar um objeto de uma classe abstrata vamos ver se o Java vai dar problema aqui então vou aqui na minha classe principal e vou tentar criar aqui ó pessoa P1 igual New pessoa exatamente o que tava anteriormente á ó ele já deu erro e o erro que tá aqui ó pessoa é um abstrato e não pode ser instanciada se você tirar a palavra abstract daqui ele vai aceitar Sem problema nenhum se eu botar a palavra abstract aqui anterior de novo se eu colocar a palavra abstract de novo no lugar antes de pessoa ele automaticamente vai comear a dar erro e vai dizer que pessoa não pode ser instanciada então essa linha aqui está errada vou deixar el como comentário a partir de agora a gente vai comear a trabalhar as heranças Vamos comear com a herança pobre ou herança de implementação vamos entender aqui melhor vamos criar uma classe que é a classe visitante então botão direito noote nova classe e a classe vai ser visitante aqui na classe visitante eu vou colocar visitante extends pessoa Ah eu vou fazer o seguinte aqui em pessoa também vou criar um two string dele então vai ser aqui ó botão direito inserir código vamos fazer o two string tá lá então ele vai fazer lá o two string da pessoa vamos fazer com visitante extends pessoa não vou escrever nada isso é visitante não vai ter nenhum atributo adicional nemum método adicional por isso que a gente chama de herança pobre ele vai herdar tudo de pessoa mas não vai implementar nada novo vamos ver aqui principal Vamos tentar criar um visitante visitante v1 é um New visitante ele deixou sem problema nenhum Se eu colocar aqui por exemplo v1. 7 nome Sei lá Juvenal e v1. 7 idade 22 e v1.
7 sexo masculino Então já fiz aqui né coloquei nome idade e Sexo vou fazer com que v1 ponto tio string na hora que eu executar ele vai escrever lá ó vou ter que mandar escrever isso né escrever o v1 tio string vamos executar tá lá Ele disse que Juvenal tem 22 anos é do sexo masculino aqui ele vai escrever pessoa porque no tio string aqui ele tá escrevendo pessoa aqui ó tá escrevendo pessoa se você botar aqui dados ele vai escrever aqui é dados do visitante lá os dados são nome idade e Sexo visitante ele mesmo não tendo nada escrito aqui dentro eu consegui fazer com que o visitante tenha nome tenha idade tenha sexo isso é a herança funcionando nesse caso aqui Uma herança pobre uma herança de implementação isso é visitante não vai ter linha nenhuma e ele vai herdar tudo aquilo que veio da sua superclasse nesse meu caso pessoa é a minha superclasse e visitante é a minha subclasse Vamos criar agora a nossa classe de alunos Então vamos lá no projeto botão direito no pacote novo Classe e nós vamos colocar aqui aluno Então vou tem um aluno lá então eu vou ter a classe aluno vou fazer com que aluno extends pessoa aluno vai ter matrícula vamos lá matrícula que é do tipo inteiro colocar inteiro aqui e vai ter curso também outro atributo aluno também vai pagar mensalidade Então nós vamos fazer aqui Public void pagar mensalidade tá lá pagar mensalidade vou vou escrever na tela aqui pagando mensalidade de aluno é só para você saber quando mandar pagar mensalidade vai dizer pagando mensalidade de aluno um método extremamente simples também vou criar aqui vou inserir o código e esse código de get set de todos eles tá lá meu aluno vai ter tudo isso daqui matrícula get matrícula set matrícula e tudo mais e agora aqui no meu código principal eu vou poder criar um aluno aqui também vou criar aqui aluno A1 é igual a new aluno vou botar isso aqui como comentário para dar uma organização no negócio aqui então criei aqui A1 que é um novo aluno vamos Vamos dar um nome para esse aluno a1. 7 nome você vê que ele tem nome né Chama Cláudio A1 P set matrícula que veio de aluno é 1 A1 P set curso é informática a1. 7 idade vai ser 16 e a1.
7 Sexo é masculino viu ele permitiu que todas essas informações fossem colocadas dentro de alunos então A1 é um objeto da classe aluno então ele tem tudo aquilo que uma pessoa tem e mais o que o aluno tem eu posso fazer com que a1 por exemplo pagar mensalidade Se eu mandar pagar mensalidade ele vai dizer lá ó pagando a mensalidade de aluno fazer o seguinte aqui ó vou pagar mensalidade pagando mensalidade do aluno e eu quero mostrar o nome dele concatenado com this. nome o nome é privado né this. get nome é porque nome foi lá lá da classe anterior quer ver um negócio você quer mostrar nome então você vem aqui em pessoa e coloca todos eles em vez de privado como protegido ó protegido protegido e protegido a partir de agora eu posso fazer this P nome tá vendo eu posso ter acesso porque o acesso protegido ele dá acesso à própria classe e a classe imediatamente anterior a sua super classe na hora que eu executar ó lá ó pagando mensalidade do aluno Cláudio tá lá tudo feito tudo organizado eu posso criar objetos com herança essa é uma herança para diferença aluno tem tudo que pessoa tem mas tem uma especialização eu digo que aluno é uma especialização de pessoa e que pessoa é uma generalização de aluno a gente viu isso também na aula agora a gente vai implementar a nossa classe de bolsista que é mais uma especialização de aluno Então vamos lá projetos vamos clicar com o botão direito aqui novo Classe Java e vamos criar bolsista onde o bolsista vai tá lá ó bolsista extends aluno isso é bolsista vai ter tudo que aluno tem e mais algumas coisas colocar aqui Private float float bolsa e ele vai ter os métodos renovar bolsa Public void renovar bolsa vou escrever na tela sei lá renovando bolsa de e vou botar o nome dele ve ponto nome tá vendo posso acessar o nome aqui também ele é subclasse de aluno então tem acesso ele é protegido todas as subclasses tem acesso e eu também tenho o Public void pagar mensalidade só que olha só o pagar mensalidade ele é um método tá vendo ele tá reclamando aqui ó ele é um método que ele vai ser sobreposto Se você olhar ali do lado tem o sobrepor sobrepor em Java é override então eu vou colocar @override só comparar com que tá tá acontecendo ali do lado e ele vai ver eu vou escrever aqui ó vou botar this pon nome é bolsista pagamento facilitado certo então eu tenho dois pagar mensalidade o pagar mensalidade do bolsista que está sendo sobreposto e o pagar mensalidade do aluno que não está sendo sobreposto vamos analisar aqui como é que isso funciona vou criar o aluno e vou criar aqui embaixo um bolsista bolsista B1 é um New bolsista Sem problema lá vou fazer com que B1 P7 matrícula vendo ele tem matrícula ele é um aluno seja 1 2 e vai ter um nome set nome Jubileu ele também vai ter uma bolsa B1 P7 bolsa na verdade Ah eu não fiz os sets e os getters calma aí vamos inserir o código aqui todos os getters e setters de bolsa então vou ter set bolsa get bolsa set bolsa ele tem uma bolsa de 12.
5 por. botar um fzin aqui no final também vou ter B1 P7 sexo para masculino e eu vou fazer com que B1 pon pagar mensalidade percebe o seguinte o pagar mensalidade do aluno ele escreveu lá pagando a mensalidade do Cláudio o pagar mensalidade do Jubileu vai ser o seguinte ó lá ó Jubileu é bolsista pagamento facilitado nesse caso aqui eu chamei o mesmo método ó pagar mensalidade pagar mensalidade só que esse método pagar mensalidade de bolsista ele está sobreposto aqui ó ele tá overrides então esse pagar mensalidade não é a mesma coisa desse pagar mensalidade esse pagar mensalidade é de um aluno e bolsista é um aluno aqui ó bolsista é um aluno mas eu estou sobrepondo isso é o pagar mensalidade para um bolsista é diferente de pagar mensalidade para um aluno então eu posso utilizar a sobreposição para facilitar a nossa vida e eu vou te mostrar aqui o funcionamento de método final lembra que na aula conceitual a gente teve o conceito de método final que é aquele método que não pode ser sobreposto dá uma olhadinha aqui o pagar mensalidade é um método normal Então vou vir aqui em aluno no lugar do pagar mensalidade eu vou colocar aqui ó final isso é pagar mensalidade é um método final se eu salvar ele automaticamente já deu erro aqui em cima por que que ele deu um erro aqui em cima ele deu um erro aqui em cima porque pagar mensalidade não pode ser sobreposto não pode ser sobreposto porque na mãe né na progenitora que é aluno eu disse que pagar mensalidade é final então ele não pode ser sobreposto e eu posso usar a palavra final além dos métodos nas classes dá uma olhadinha aqui então vou voltar aqui para tirar esse erro vou vir aqui em aluno vou tirar esse final daqui isso é pagar mensalidade ele pode ser sobreposto o erro já sumiu já tá tudo funcionando e eu também posso por exemplo aqui em aluno dizer que ele é uma classe final então Public final Class aluno na hora que eu salvar ele já deu erro em bolsista aqui ó isso por qu bolsista Ó lá eu não posso herdar da minha classe aluno que é final isso é na aula teórica a gente aprendeu uma classe final ela não pode ter filhos O que eu tô tentando fazer aqui é com que bolsista extends aluno se bolsista extends aluno e aluno é uma classe final Esse extends não pode funcionar Então você vai utilizar essa palavra final nas classes quando você não quiser que ela tenha filho e você vai utilizar essa mesma palavra final nos métodos quando você não quiser que esse método seja sobreposto Então é isso pequeno gafanhoto a gente viu como funciona a herança herança múltipla né árvores de herança níveis diferentes de herança a gente viu vários conceitos várias coisas a gente colocou em prática Mas a gente não implementou toda a árvore eu vou colocar aqui a árvore Monte isso aqui na sua casa monta essa árvore toda faltou a gente fazer Professor faltou a gente fazer o aluno técnico isso você vai fazer como exercício e você depois que terminar pode colocar o código aqui embaixo como com porque muita gente depois vem olhar você vai ajudar com certeza muita gente e com isso a gente chega ao final dos conceitos de herança é claro que tem mais conceitos sim mas eles são conceitos mais avançados a gente já está entrando pra parte intermediária a gente já tá chegando no finalzinho do nosso curso falta só a gente ver um pilar que é o Pilar do polimorfismo que na verdade quando eu utilizei o override eu estou utilizando um conceito primordial de polimorfismo Então esse é o nosso próximo passo passo conceitual dentro do curso de programação orientada objeto o que eu quero te pedir é o mesmo de sempre aqui ó aqui do lado você pode se inscrever no canal alunos inscritos recebem notificações antes clica não se esquece de clicar no Sininho então depois que você se inscreve vira um Sininho do lado clica nesse sino e diz olha eu quero receber notificações se for no celular mais importante ainda porque toda vez que sair uma aula você vai receber aquelas notificações lá no seu sistema Android no seu sistema Windows ou no seu sistema iOS alunos inscritos e com o Sininho ligado recebem as aulas antes de todo mundo outra coisa que você pode fazer é visitar as nossas outras playlists para você fazer esse mesma essa mesma coisa em PHP Então você também tem essa aula 11b na playlist do curso de programação orientada objeto com PHP é só você clicar aqui em cima no izinho de interatividade ou acessar diretamente o nosso canal do YouTube E você vai pra área de playlist e tem lá o curso de programação orientar objeto com Java e PHP e você pode escolher qual você quiser e você também a qualquer momento pode acessar o nosso site que é o cursoemvideo. com onde você pode ver o material tudo organizado para que você possa acompanhar todos os nossos cursos então eu me despeço por aqui deixando mais um convite especial que é para todos vocês se tornarem apoiadores do projeto gostou dessa aula viu que ela tem uma qualidade superior a muitos cursos que você tem por aí inclusive os pagos ajude o projeto a continuar acessando ó apoie.
Related Videos
Curso POO Java #12b - Polimorfismo em Java (Parte 1)
18:17
Curso POO Java #12b - Polimorfismo em Java...
Curso em Vídeo
123,728 views
Curso POO Teoria #12a - Conceito Polimorfismo (Parte 1)
28:43
Curso POO Teoria #12a - Conceito Polimorfi...
Curso em Vídeo
202,517 views
Aula de Programação Orientada a Objetos em Kotlin do básico ao avançado
1:42:55
Aula de Programação Orientada a Objetos em...
Lucas Montano
83,715 views
Curso POO Teoria #11a - Herança (Parte 2)
24:50
Curso POO Teoria #11a - Herança (Parte 2)
Curso em Vídeo
154,458 views
Curso POO Teoria #10a - Herança (Parte 1)
18:28
Curso POO Teoria #10a - Herança (Parte 1)
Curso em Vídeo
177,667 views
Curso Python #01 - Seja um Programador
29:07
Curso Python #01 - Seja um Programador
Curso em Vídeo
8,078,574 views
Curso POO Teoria #06a - Pilares da POO: Encapsulamento
37:37
Curso POO Teoria #06a - Pilares da POO: En...
Curso em Vídeo
313,740 views
Herança e Polimorfismo (exemplo Java) - Aulão #007
1:03:55
Herança e Polimorfismo (exemplo Java) - Au...
DevSuperior
33,019 views
Curso POO Teoria #02a - O que é um Objeto?
30:00
Curso POO Teoria #02a - O que é um Objeto?
Curso em Vídeo
645,654 views
React JS фундаментальный курс от А до Я
3:01:08
React JS фундаментальный курс от А до Я
Ulbi TV
1,913,054 views
Curso POO Teoria #07a - Relacionamento entre Classes
35:25
Curso POO Teoria #07a - Relacionamento ent...
Curso em Vídeo
244,296 views
Curso de C# - Aprenda o essencial em 5 HORAS
5:00:01
Curso de C# - Aprenda o essencial em 5 HORAS
Victor Lima - Ciência da Computação
680,917 views
[PASSO-A-PASSO] Como usar o mouse. Aula explicada de forma simples e prática.
37:59
[PASSO-A-PASSO] Como usar o mouse. Aula ex...
Ensinasoft - Curso de Informática Básica
118,971 views
Curso de Java #14 - Vetores - Gustavo Guanabara
36:53
Curso de Java #14 - Vetores - Gustavo Guan...
Curso em Vídeo
284,354 views
Curso POO Teoria #05a - Exemplo Prático com Objetos
35:24
Curso POO Teoria #05a - Exemplo Prático co...
Curso em Vídeo
326,839 views
#1 A FACULDADE ENSINOU ERRADO - POO da quinta série
23:52
#1 A FACULDADE ENSINOU ERRADO - POO da qui...
bero o dev
99,341 views
Curso POO teoria #08a - Relacionamento de Agregação
27:29
Curso POO teoria #08a - Relacionamento de ...
Curso em Vídeo
175,349 views
Como fazer Herança de classes no Java - Curso Java POO Aula #11
35:33
Como fazer Herança de classes no Java - Cu...
Academia dos Devs
10,362 views
Curso POO Teoria #03a - O que é Visibilidade em um Objeto?
18:41
Curso POO Teoria #03a - O que é Visibilida...
Curso em Vídeo
387,599 views
Copyright © 2024. Made with ♥ in London by YTScribe.com