Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Princípios da OOP: Herança | OOP
Java OOP

Princípios da OOP: HerançaPrincípios da OOP: Herança

Herança

Vamos falar sobre o princípio da POO - Herança.

Herança é um mecanismo que permite a criação de classes com base em outra classe.

  • A classe que serve como base é chamada de pai ou superclasse.
  • A classe criada com base na classe pai é chamada de filho, subclasse ou descendente.

Assim, a classe filho pode herdar as características e propriedades de outra classe - a classe pai (seus métodos e variáveis).

Você pode herdar uma classe usando a palavra-chave extends. A sintaxe para uma classe filho herdar de uma classe pai é assim:

java

Child.java

Let's take a look at an example of how inheritance works in code. We have a class Bird with certain fields and methods, and there is a class Parrot with its own fields and methods. A parrot is a bird, so logically, the parrot should inherit from the Bird class:

Image 1
Image 2
Image 3

Vamos entender o que está acontecendo nessas imagens:

  1. Criamos uma classe Bird, que é a classe pai no nosso caso. Essa classe tem seus próprios campos e métodos;
  2. Criamos uma classe Parrot, que usa a palavra-chave extends para herdar da classe pai Bird. A classe Parrot é uma classe filha, e possui seus próprios campos e métodos. Além disso, como uma classe filha, Parrot herda todos os campos e métodos da classe pai Bird;
  3. Criamos um objeto da classe Parrot no método main e vemos que podemos inicializar os campos de ambas as classes pai e filha. Primeiro, inicializamos os campos da classe pai Bird, e depois inicializamos os campos da classe filha Parrot. Em seguida, chamamos os métodos: primeiro, os métodos da classe pai, e depois o método da classe filha.

Assim, usamos herança para herdar a classe Bird.

Por que fazemos isso?

Quando temos muitas subclasses diferentes de Bird, não apenas Parrot, por exemplo, existem também Pigeon e Penguin. Nesse caso, teríamos muitos campos duplicados, como boolean canFly. A primeira coisa que a herança ajuda é a evitar fragmentos de código duplicados. Além disso, ela melhora significativamente a legibilidade. Na prática, raramente você encontra a classe Bird e suas subclasses diretamente, mas a herança é comumente usada, principalmente com interfaces.

Nota

Você aprenderá sobre interfaces na próxima seção deste curso.

Regras de herança

  • Herde apenas uma classe. Java não suporta herança múltipla. Uma classe pode ter apenas um pai.

Nota

Você não pode herdar de si mesmo!

  • Tudo é herdado exceto variáveis e métodos privados.

Anteriormente, mencionei que uma subclasse teria acesso a todas as variáveis e métodos dos pais. No entanto, isso não é totalmente verdade.

Na realidade, todos os métodos e variáveis marcados com o modificador private não são acessíveis para a subclasse.

  • Sobrescrever o método da classe pai.

Vamos imaginar que herdamos uma classe, mas há certas partes do código herdado de que não gostamos. Suponha que queremos que um método específico funcione de maneira diferente da classe pai.

Para sobrescrever um método da classe pai, escrevemos @Override acima dele:

java

Parrot.java

No código acima, nós sobrescrevemos o método da classe pai, e agora, quando esse método é chamado a partir da classe filho, o método sobrescrito será invocado!

  • Prevenindo Herança.

Se você não deseja que ninguém herde sua classe, use o modificador final antes dela. Por exemplo:

java

Bird.java

java

Parrot.java

Dessa forma, ao utilizar a palavra-chave final, nós proibimos a herança da classe Bird.

Essas são apenas as regras fundamentais e características da herança. É um tópico vasto, e você utilizará frequentemente. Ao longo do curso, você se familiarizará com outros aspectos da herança e os utilizará com mais frequência.

1. Quantas classes podemos herdar de uma só vez?
2. Como podemos impedir a herança em Java?
3. Como podemos evitar a herança em Java?

Quantas classes podemos herdar de uma só vez?

Selecione a resposta correta

Como podemos impedir a herança em Java?

Selecione a resposta correta

Como podemos evitar a herança em Java?

Selecione a resposta correta

Tudo estava claro?

Seção 2. Capítulo 2
course content

Conteúdo do Curso

Java OOP

Princípios da OOP: HerançaPrincípios da OOP: Herança

Herança

Vamos falar sobre o princípio da POO - Herança.

Herança é um mecanismo que permite a criação de classes com base em outra classe.

  • A classe que serve como base é chamada de pai ou superclasse.
  • A classe criada com base na classe pai é chamada de filho, subclasse ou descendente.

Assim, a classe filho pode herdar as características e propriedades de outra classe - a classe pai (seus métodos e variáveis).

Você pode herdar uma classe usando a palavra-chave extends. A sintaxe para uma classe filho herdar de uma classe pai é assim:

java

Child.java

Let's take a look at an example of how inheritance works in code. We have a class Bird with certain fields and methods, and there is a class Parrot with its own fields and methods. A parrot is a bird, so logically, the parrot should inherit from the Bird class:

Image 1
Image 2
Image 3

Vamos entender o que está acontecendo nessas imagens:

  1. Criamos uma classe Bird, que é a classe pai no nosso caso. Essa classe tem seus próprios campos e métodos;
  2. Criamos uma classe Parrot, que usa a palavra-chave extends para herdar da classe pai Bird. A classe Parrot é uma classe filha, e possui seus próprios campos e métodos. Além disso, como uma classe filha, Parrot herda todos os campos e métodos da classe pai Bird;
  3. Criamos um objeto da classe Parrot no método main e vemos que podemos inicializar os campos de ambas as classes pai e filha. Primeiro, inicializamos os campos da classe pai Bird, e depois inicializamos os campos da classe filha Parrot. Em seguida, chamamos os métodos: primeiro, os métodos da classe pai, e depois o método da classe filha.

Assim, usamos herança para herdar a classe Bird.

Por que fazemos isso?

Quando temos muitas subclasses diferentes de Bird, não apenas Parrot, por exemplo, existem também Pigeon e Penguin. Nesse caso, teríamos muitos campos duplicados, como boolean canFly. A primeira coisa que a herança ajuda é a evitar fragmentos de código duplicados. Além disso, ela melhora significativamente a legibilidade. Na prática, raramente você encontra a classe Bird e suas subclasses diretamente, mas a herança é comumente usada, principalmente com interfaces.

Nota

Você aprenderá sobre interfaces na próxima seção deste curso.

Regras de herança

  • Herde apenas uma classe. Java não suporta herança múltipla. Uma classe pode ter apenas um pai.

Nota

Você não pode herdar de si mesmo!

  • Tudo é herdado exceto variáveis e métodos privados.

Anteriormente, mencionei que uma subclasse teria acesso a todas as variáveis e métodos dos pais. No entanto, isso não é totalmente verdade.

Na realidade, todos os métodos e variáveis marcados com o modificador private não são acessíveis para a subclasse.

  • Sobrescrever o método da classe pai.

Vamos imaginar que herdamos uma classe, mas há certas partes do código herdado de que não gostamos. Suponha que queremos que um método específico funcione de maneira diferente da classe pai.

Para sobrescrever um método da classe pai, escrevemos @Override acima dele:

java

Parrot.java

No código acima, nós sobrescrevemos o método da classe pai, e agora, quando esse método é chamado a partir da classe filho, o método sobrescrito será invocado!

  • Prevenindo Herança.

Se você não deseja que ninguém herde sua classe, use o modificador final antes dela. Por exemplo:

java

Bird.java

java

Parrot.java

Dessa forma, ao utilizar a palavra-chave final, nós proibimos a herança da classe Bird.

Essas são apenas as regras fundamentais e características da herança. É um tópico vasto, e você utilizará frequentemente. Ao longo do curso, você se familiarizará com outros aspectos da herança e os utilizará com mais frequência.

1. Quantas classes podemos herdar de uma só vez?
2. Como podemos impedir a herança em Java?
3. Como podemos evitar a herança em Java?

Quantas classes podemos herdar de uma só vez?

Selecione a resposta correta

Como podemos impedir a herança em Java?

Selecione a resposta correta

Como podemos evitar a herança em Java?

Selecione a resposta correta

Tudo estava claro?

Seção 2. Capítulo 2
some-alt