Este repositório é dedicado ao terceiro curso da formação de Java e Orientação a Objetos oferecido pela Alura em colaboração com o programa One da Oracle. Durante o curso, adquiri conhecimentos sobre herança, polimorfismo, composição e interfaces e os fundamentos essenciais dessa linguagem de programação.
O curso foi dividido em diversos módulos, cada um com seus respectivos exercícios, atividades e um desafio durante o curso.
![](https://private-user-images.githubusercontent.com/68448029/242782701-7bf8aed1-0c01-44a8-97e1-fd084f77682a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjIwOTE4MDgsIm5iZiI6MTcyMjA5MTUwOCwicGF0aCI6Ii82ODQ0ODAyOS8yNDI3ODI3MDEtN2JmOGFlZDEtMGMwMS00NGE4LTk3ZTEtZmQwODRmNzc2ODJhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzI3VDE0NDUwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWM1NDEwOGQ4NzcyYWUzODFkYWZkOGQ0NTc1OThlYmY5NzRhMjU0ZWM4N2ZlNDJlMDA5NmYyNWUxMDM0NjMyMGImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.x_Gh3RFfFrDArbc51OrYkavz94TsBLC6dIlcSrrvtKY)
- A herança pode resolver problemas de reutilização de código, permite o uso da palavra-chave
extends
em Java para herdar características e funcionalidades da classe mãe, e proporciona a reutilização do código como benefício. - Aprendemos que a classe mãe é chamada de super ou
base class
, a classe filha é chamada desub class
, o modificadorprotected
aumenta a visibilidade de membros, osuper
é usado para acessar membros da classe mãe e a sobrescrita permite redefinir um método. - Objetos não mudam de tipo, a referência pode mudar, o polimorfismo permite usar referências mais genéricas, o uso de referências mais genéricas desacopla sistemas.
- Aprendemos conceitos de herança, construtores e polimorfismo, a anotação
@Override
, que construtores não são herdados e que o construtor da classe mãe pode ser chamado usandosuper()
. - Aprendemos sobre classes abstratas e seu propósito, métodos abstratos e sua utilidade.
- Não existe herança múltipla em
Java
, aprendemos sobre interfaces, diferenças entre classes abstratas e interfaces, e que interfaces são uma alternativa à herança para o polimorfismo. - Aprofundamos o uso de
interface
, trabalhamos mais com herança e exploramos outras aplicações de heranças e interfaces.
Este repositório é um registro de todo o meu avanço no curso. Ao longo do curso, tive a oportunidade de aplicar esses conceitos através de exercícios e atividades práticas. Nesse repositório, você encontrará os exercícios, atividades e desafios realizados por mim durante o curso e todos eles estão organizados por módulo e podem ser encontrados em suas respectivas pastas.