13. Herança e Polimorfismo em Java

Página 84

13. Herança e Polimorfismo em Java

A programação orientada a objetos (POO) é um paradigma de programação que utiliza objetos e suas interações para projetar e programar aplicações. Java é uma linguagem de programação que suporta plenamente a POO, e dois dos seus conceitos fundamentais são herança e polimorfismo. Esses conceitos permitem a criação de código mais modular, flexível e reutilizável.

Herança em Java

Herança é um mecanismo pelo qual uma nova classe, conhecida como subclasse, pode herdar campos e métodos de outra classe, chamada de superclasse. A herança permite que as subclasses tenham um ponto de partida comum, compartilhando características e comportamentos, evitando assim a duplicação de código.

class Veiculo { protected String marca; public void buzinar() { System.out.println("Beep! Beep!"); } } class Carro extends Veiculo { private int numeroDePortas; public void exibirInformacoes() { System.out.println("Marca: " + marca + ", Portas: " + numeroDePortas); } }

No exemplo acima, a classe Carro herda da classe Veiculo. Isso significa que Carro pode acessar o campo marca e o método buzinar() da classe Veiculo. A palavra-chave extends é usada para estabelecer essa relação de herança em Java.

Polimorfismo em Java

Polimorfismo é a capacidade de um objeto ser referenciado de várias formas. Mais especificamente, é a habilidade de um método ser implementado de várias formas diferentes. Em Java, o polimorfismo pode ser alcançado através do uso de métodos sobrescritos e sobrecarregados.

Um método sobrescrito é aquele que é herdado de uma superclasse e redefinido na subclasse. Isso permite que a subclasse forneça uma implementação específica para esse método. A anotação @Override é comumente usada para indicar que um método está sendo sobrescrito.

class Veiculo { public void buzinar() { System.out.println("Beep! Beep!"); } } class Carro extends Veiculo { @Override public void buzinar() { System.out.println("Honk! Honk!"); } }

No exemplo acima, a classe Carro sobrescreve o método buzinar() da classe Veiculo, fornecendo sua própria implementação.

Polimorfismo também permite que um objeto de uma subclasse seja tratado como se fosse um objeto de sua superclasse. Isso é particularmente útil quando se lida com coleções de objetos que compartilham uma classe base comum.

Veiculo meuVeiculo = new Carro(); meuVeiculo.buzinar(); // Chama o método buzinar() da classe Carro

Aqui, meuVeiculo é uma referência do tipo Veiculo, mas aponta para uma instância de Carro. Quando o método buzinar() é chamado, a implementação sobrescrita em Carro é executada.

Considerações Importantes sobre Herança e Polimorfismo

Embora a herança e o polimorfismo sejam poderosos, eles devem ser usados com cautela. Herança excessiva ou inadequada pode levar a uma estrutura de classes confusa e difícil de manter. É importante seguir o princípio do "menor conhecimento" e expor apenas o necessário. Além disso, a composição muitas vezes pode ser uma alternativa mais flexível à herança.

O polimorfismo, por outro lado, quando usado sabiamente, pode tornar o código mais genérico e reutilizável. Por exemplo, uma função que opera em objetos do tipo Veiculo pode funcionar com qualquer subclasse de Veiculo, sem precisar conhecer os detalhes específicos de cada subclasse.

Conclusão

Herança e polimorfismo são fundamentais na programação orientada a objetos em Java. Eles permitem que os desenvolvedores construam sistemas extensíveis e reutilizáveis, reduzindo a redundância de código e melhorando a manutenção. Ao mesmo tempo, é essencial usar esses conceitos de forma ponderada e entender suas implicações no design do software. Com a prática e experiência, os programadores podem dominar o uso eficaz de herança e polimorfismo para criar aplicações robustas e flexíveis em Java.

Now answer the exercise about the content:

Qual das seguintes afirmações sobre herança e polimorfismo em Java está correta?

You are right! Congratulations, now go to the next page

You missed! Try again.

Next page of the Free Ebook:

8513.1. Herança e Polimorfismo em Java: Conceito de Herança

Earn your Certificate for this Course for Free! by downloading the Cursa app and reading the ebook there. Available on Google Play or App Store!

Get it on Google Play Get it on App Store

+ 6.5 million
students

Free and Valid
Certificate with QR Code

48 thousand free
exercises

4.8/5 rating in
app stores

Free courses in
video, audio and text