Buscar

Semana 3 - Herança na orientação a objetos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Herança na orientação a objetos
Apresentação
Durante o desenvolvimento de programas em Java, o desenvolvedor costuma criar classes para 
representar objetos reais. Por exemplo, para tratar de assuntos relacionados a funcionários de uma 
empresa, cria-se uma classe “funcionário” que contém seus atributos, como nome, CPF e salário, 
assim como os métodos que manipulam esses atributos.
 
A partir disso, imagine uma empresa que tem diferentes cargos entre os funcionários. Nesse caso, 
cada categoria de funcionário precisa ter atributos específicos. O gerente precisa ter o nome de 
todos os setores que gerencia e o analista precisa ter a matrícula de todos os desenvolvedores com 
quem colabora. Já o desenvolvedor, por sua vez, é ligado a um único setor e trabalha com um 
analista, não dependendo de tantos atributos.
 
Uma maneira de não repetir desnecessariamente atributos que se repetem em diferentes classes é 
utilizar o conceito de herança. Com a herança, é criada uma classe com os atributos e os métodos 
comuns de todos os tipos de funcionários e, então, são especificadas classes para cada um dos 
tipos de funcionários. Utilizar herança é uma forma de reutilizar código em Java.
 
Nesta Unidade de Aprendizagem, você aprenderá o que é herança na programação orientada a 
objetos, a utilizar construtores nesse contexto e a desenvolver uma aplicação em Java com esses 
conceitos.
Bons estudos.
Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados:
Definir o que é herança em orientação a objetos.•
Utilizar sobrecarga de construtor na herança.•
Construir uma aplicação com estrutura de herança fazendo uso de construtores para criar 
objetos.
•
Infográfico
Desenvolver código limpo e fácil de manter, muitas vezes, é um desafio para desenvolvedores. A 
alta demanda do dia a dia e a necessidade 
de aumentar a produtividade pode ser uma armadilha para produzir códigos que futuramente 
trarão mais problemas na manutenção, aumentando cada vez mais os custos.
Quando se trata de código em Java, existem alguns padrões que podem ser seguidos para que o 
programador não cometa erros ao abusar de conceitos como herança e sobrecargas. Quando se 
aplica herança no código, é possível, muitas vezes, agrupar várias classes e deixá-las amarradas, o 
que pode se tornar um problema ao realizar uma modificação em alguma das classes.
Um dos padrões para contornar esse problema é o princípio SOLID, 
o qual você irá conhecer um pouco mais neste Infográfico.
Aponte a câmera para o 
código e acesse o link do 
conteúdo ou clique no 
código para acessar.
https://statics-marketplace.plataforma.grupoa.education/sagah/83cea1c5-bdc7-4ab1-89ac-20c5b1323898/e632fa9c-cc66-4bfc-908d-c77fc2c1e9d1.png
Conteúdo do livro
A herança é uma das características mais poderosas e importantes da orientação a objetos, pois 
permite o reaproveitamento de atributos e de métodos no código. O reaproveitamento de código é 
um dos principais pontos capazes de melhorar a produtividade de um programador, afinal, 
reescrever trechos de código sem necessidade é um desperdício de tempo. Na programação 
orientada a objetos, o conceito de herança pode ajudar desenvolvedores a produzirem sistemas 
mais eficientes e fáceis de manter.
No capítulo Herança na orientação a objetos, base teórica desta Unidade de Aprendizagem, você 
vai conhecer um pouco mais sobre como funciona a herança em Java, como sobrescrever métodos 
e construtores, bem como a fazer uma aplicação desses conceitos.
Boa leitura.
PROGRAMAÇÃO 
ORIENTADA 
A OBJETOS 
Raiza Artemam de Oliveira
Herança na orientação 
a objetos
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:
  Definir o que é herança em orientação a objetos.
  Utilizar sobrecarga de construtor na herança.
  Construir uma aplicação com estrutura de herança fazendo uso de 
construtores para criar objetos.
Introdução
As linguagens de programação que possuem paradigma orientado 
a objetos são amplamente utilizadas, tanto na indústria quanto na 
academia. A primeira linguagem de programação totalmente orien-
tada a objetos teve origem na década de 1970, chamada de Smalltalk 
(GOLDBERG, 1984). Na década seguinte, começaram a surgir outras 
linguagens com o mesmo paradigma, como Delphi, Pascal e Java. 
A linguagem Java ganhou destaque e se popularizou, pois fornece, 
entre outras coisas, portabilidade. 
Nesse contexto de orientação a objetos, alguns conceitos são funda-
mentais, sendo um deles o de herança. O relacionamento de herança é 
algo inovador na orientação a objetos e forneceu um meio de abstrair 
informações de formas mais precisas. 
Neste capítulo, você estudará sobre o princípio de herança em Java 
na orientação a objetos. Além disso, verá como utilizar a sobrecarga de 
construtores. Por fim, verá como construir uma aplicação com estrutura 
de herança utilizando construtores para criar objetos.
1 Herança no paradigma orientado a objetos
O paradigma de programação orientado a objetos possui princípios e conceitos 
que são comuns a todas as linguagens que seguem esse paradigma, como C++, 
PHP e Java. Por isso, compreender os conceitos do paradigma orientado a 
objetos é fundamental para que se possa desenvolver em qualquer linguagem 
que o siga.
De acordo com Rumbaugh et al. (1991), o paradigma de programação 
orientado a objetos é uma maneira de se pensar os problemas da programação 
utilizando conceitos do mundo real. Nessa abordagem, o componente funda-
mental é o objeto, que combina estrutura (classe) e comportamento em uma 
única entidade. Os principais conceitos da programação orientada a objetos 
são: classes, objetos, associação, encapsulamento, polimorfismo e herança. 
Juntos, esses princípios compõem a base da lógica e a estrutura de programas 
orientados a objetos.
A classe representa uma abstração de quaisquer objetos no mundo real. 
Por abstração, entende-se a capacidade de descrever somente as principais 
características, sem se ater a detalhes. Por exemplo, pode-se definir uma 
classe Sofa para descrever um sofá. Os atributos dessa classe correspondem 
às características dos objetos que pertencem a ela. No caso da classe Sofa, 
os atributos podem ser número de lugares, cor e material. Observe, a seguir, 
o código em Java.
public class Sofa{
 private int numeroLugares;
 private String cor;
 private String material;
}
Agora, imagine um sistema que gerencia o estoque de uma loja de móveis. 
Nesse cenário, o sistema deverá manipular informações sobre diferentes tipos 
de móveis. Por exemplo, poderíamos criar uma classe para sofá, outra classe 
para mesa, mais uma para armário. No entanto, todos esses objetos possuem 
algo em comum, são todos móveis. Dessa forma, é possível criar uma classe 
Movel para manipular essas informações. Observe, a seguir, o código para 
a classe Movel.
Herança na orientação a objetos2
public class Movel{
 private int numeroLugares; //atributo de sofá e mesa
 private String cor;//atributo de todos os móveis
 private String material;// atributo de todos os móveis
 private numeroPortas; //atributo de guarda-roupas e armários
}
Como pode ser visto na Figura 1, nesse caso, tem-se, em uma mesma 
classe, muitos atributos que não pertencem ao mesmo objeto. Por exemplo, ao 
instanciar um objeto sofa da classe Movel, esse objeto não possui informa-
ções sobre o número de portas. É importante ressaltar que manter atributos e 
responsabilidades em um objeto que não pertencem a ele não é uma prática 
correta de programação. 
Para lidar com esse cenário, pode-se manter na classe Movel o que é 
comum a todos os móveis e criar classes específicas para cada um dos móveis 
que possuem características diferentes. A Figura 2 apresenta o diagrama de 
classes com a estrutura de como se pode modelar para que as classes não 
repitam atributos.
Figura 1. Diagrama de classes com relacionamento de herança.
3Herança na orientação a objetos
Figura 2. Implementaçãoda classe Movel em Java.
Essa relação, em que uma classe possui elementos comuns e as demais 
classes derivem dela, é chamada de herança. No diagrama de classes, a di-
reção da seta indica a herança. Nesse caso, as classes Sofa, Armario e 
Mesa herdam da classe Movel, ou pode-se dizer que elas são classes-filhas 
da classe Movel.
Em uma relação de herança, as classes-filhas possuem acesso aos atributos 
e métodos da classe-pai, com exceção dos métodos e atributos indicados como 
protected. Para compreender como esse conceito se aplica na programação, 
observe a Figura 3, que apresenta o código da implementação das classes 
Movel, Sofa, Armario e Mesa.
Herança na orientação a objetos4
Figura 3. Implementação de classes-filhas da classe Movel 
em Java.
A marcação extends na declaração da classe indica a relação de herança. 
É possível ler public class Sofa extends Movel(){} da seguinte 
forma: a classe Sofa estende a classe Movel. Os objetos da classe-filha 
possuem todos os atributos e métodos da classe-pai. Por exemplo, se um objeto 
da classe Sofa for criado, ele terá os atributos cor, valor, material e assentos.
5Herança na orientação a objetos
Ao trabalhar com relacionamentos entre as classes no Java, fique atento ao conceito 
de encapsulamento. Existem dois níveis de encapsulamento: 
1. Nível de classe: quando o acesso de uma classe inteira é determinado, o qual 
pode ser public.
2. Nível de membro (atributo ou método): quando o acesso de atributos ou mé-
todos de uma classe são determinados, os quais podem ser public, private, 
protected.
Os modificadores de acesso em Java são os seguintes:
  public: pode ser acessado de qualquer lugar e por qualquer entidade que possa 
visualizar a classe a que ele pertence.
  private: não pode ser acessado ou utilizado por nenhuma outra classe. Não se 
aplica às classes, somente para seus métodos e atributos. Os atributos e métodos de 
uma classe-pai definidos como private não podem ser vistos pelas classes-filhas.
  protected: torna o membro acessível às classes do mesmo pacote ou por meio 
de herança.
2 Sobrecarga de construtor
As classes possuem métodos responsáveis por inicializar o objeto, os quais são 
chamados de construtores. Em Java, o construtor é defi nido como um método 
cujo nome deve ser o mesmo da classe e sem indicação do tipo de retorno. 
O construtor é unicamente invocado no momento da criação do objeto, por 
meio do operador new (DEITEL; DEITEL, 2017). O retorno desse operador 
é uma referência para o objeto recém-criado.
Em Java, o construtor pode receber argumentos, como em qualquer mé-
todo. Uma classe pode possuir mais de um construtor, o que é chamado de 
sobrecarga (DEITEL; DEITEL, 2017). Observe, por exemplo, os construtores 
definidos para a classe Point do pacote java.awt. A classe java.awt.
Point tem dois campos, x e y, do tipo int. Essa classe oferece um construtor 
que permite criar um ponto representando as suas coordenadas, passadas 
como argumentos para o construtor:
public Point(int x, int y) 
Herança na orientação a objetos6
Esse construtor constrói e inicializa um ponto no local especificado (x, y) 
no espaço de coordenadas. Além disso, existe também outro construtor que 
recebe como argumento um outro objeto da classe Point:
public Point(Point p)
O construtor que recebe um argumento constrói e inicializa um ponto 
no mesmo local onde o objeto point foi especificado. Por fim, a classe Point 
possui também um construtor-padrão, que não recebe nenhum parâmetro:
public Point()
O construtor-padrão constrói e inicializa um ponto na origem (0, 0) do 
espaço de coordenadas. Por padrão, toda classe no Java possui, pelo menos, 
um construtor definido. Se nenhum construtor for explicitamente definido 
na classe, um construtor-padrão, que não recebe argumentos, é incluído para 
a classe pelo compilador Java. No entanto, se algum método construtor for 
definido, o construtor-padrão não será criado automaticamente, de modo 
que, para utilizá-lo, seria preciso declarar um construtor sem argumentos 
explicitamente.
Segundo Deitel e Deitel (2017), no momento em que um construtor é invo-
cado, a seguinte sequência de ações é executada para a criação de um objeto:
  O espaço para o objeto é alocado em memória e seu conteúdo é inicia-
lizado com zeros.
  O construtor da classe-pai é invocado. Se a classe não possui um re-
lacionamento de herança, por padrão, o Java chama o construtor da 
classe Object.
  Os membros da classe são inicializados para o objeto, seguindo a ordem 
em que foram declarados na classe.
  O restante do corpo do construtor é executado.
Seguir essa sequência é uma necessidade, a fim de garantir que, quando o 
corpo de um construtor esteja sendo executado, o objeto já terá à disposição as 
funcionalidades mínimas necessárias, quais sejam aquelas definidas por seus 
ancestrais. O primeiro passo garante que nenhum campo do objeto terá um 
valor arbitrário que possa tornar erros de não inicialização difíceis de detectar.
7Herança na orientação a objetos
3 Construindo uma aplicação Java com herança
Para melhor compreensão dos conceitos apresentados sobre herança entre 
classes, analisaremos um exemplo de como implementar uma aplicação em Java 
para gerenciar os funcionários em uma universidade. Essa aplicação deve ser 
capaz de realizar o cadastro de alunos, professores e técnicos administrativos. 
Nesse contexto, a primeira abstração que se pode fazer é que professores e 
técnicos são pessoas e possuem características em comum, como nome, data 
de nascimento, CPF e e-mail. Dessa forma, crie uma classe Pessoa para 
agrupar os atributos comuns, conforme a seguir: 
import java.util.Date;
public class Pessoa {
 public String nome;
 public String cpf;
 public Date data _ nascimento;
 //Constructor da classe pessoa
 public Pessoa(String _ nome, String _ cpf, Date _ data) {
 this.nome = _ nome;
 this.cpf = _ cpf;
 this.data _ nascimento = _ data;
 }
A classe Pessoa possui os atributos nome, cpf e data_nascimento 
e um construtor, que inicializa esses valores. Agora, deve-se implementar as 
classes para professor e técnico administrativo. Contudo, observe que esses 
dois também possuem algo em comum pelo qual podem ser agrupados: ambos 
são funcionários. Dessa forma, crie uma classe Funcionario:
import java.util.Date;
//Funcionario é classe herdeira da classe Pessoa
public class Funcionario extends Pessoa{
 private double salario;
Herança na orientação a objetos8
 public Funcionario(String _ nome, String _ cpf, Date _ data) {
 super( _ nome, _ cpf, _ data); //chamada do constructor pai
 }
 //calcula salario do funcionário
 public double calculaSalario(int horasTrabalhadas) {
 return horasTrabalhadas*10;
 }
A classe Funcionario estende, ou herda, a classe Pessoa. A classe 
Funcionario possui o atributo salario, bem como um método para 
calcular esse atributo de acordo com a quantidade de horas trabalhadas por 
cada funcionário. Além disso, observe que o construtor da classe Fun-
cionario possui a chamada super, que indica que está sendo cha-
mado o método construtor da classe-pai. Ou seja, quando se instancia 
um objeto da classe Funcionario, é feita uma chamada para o cons-
trutor da classe Pessoa. Agora, escreva as classes para Professor e 
TecnicoAdministrativo:
import java.util.Date;
public class Professor extends Funcionario {
 public Professor(String _ nome, String _ cpf, Date _ data) {
 super( _ nome, _ cpf, _ data);
 }
public class TecnicoAdministrativo extends Funcionario{
 public TecnicoAdministrativo(String _ nome, String _ cpf, 
Date _ data) {
 super( _ nome, _ cpf, _ data);
 }
}
9Herança na orientação a objetos
Ambas as classes, Professor e TecnicoAdministrativo, herdam 
a classe Funcionario, que, por sua vez, também herda a classe Pessoa. 
Dessa forma, um objeto professor possui todos os atributos e métodos das 
classes Pessoa e Funcionario. Observe, a seguir,como fica a instanciação 
de um objeto da classe Professor.
Professor prof = new Professor(“Paulo”, “622.875.720-23”, new 
Date());
//Calcula salario da classe Funcionario
System.out.println(prof.calculaSalario(400));
//Atributos Nome e CPF da classe Pessoa
System.out.println(prof.getNome));
System.out.println(prof.getCpf));
Ambas as classes, Professor e TecnicoAdministrativo, pos-
suem o atributo salario, que está na classe Funcionario. No entanto, 
o cálculo do salário do professor é diferente do cálculo do salário do técnico. 
Para explicitar essa diferença, pode-se sobrescrever na classe Professor 
o método calculaSalario, passando, além da quantidade de horas, a 
classe de contratação.
public class Professor extends Funcionario {
 public Professor(String _ nome, String _ cpf, Date _ data) {
 super( _ nome, _ cpf, _ data);
 }
 //sobrescreve o calculo de salario do funcionário
 public double calculaSalario(int horasTrabalhadas, double 
bonificação) {
 return super.calculaSalario(horasTrabalhadas)*bonificacao;
 }
}
Herança na orientação a objetos10
Agora, quando o método para calcular o salário do objeto professor 
for chamado, ele executará o método calculaSalario de acordo com a 
quantidade de parâmetros passados a ele. Se ele receber dois parâmetros, será 
chamado o método da classe Professor; se receber apenas um parâmetro, 
então será chamado o método calculaSalario da classe Funcionario. 
Observe como fica a instanciação dos objetos:
Professor prof = new Professor(“Paulo”, “622.875.720-53”, new 
Date());
TecnicoAdministrativo tecnico = new TecnicoAdministrativo(“João”, 
“457.414.970-12”, new Date());
//Calcula salario da classe Professor
System.out.println(“Salario do professor: “+prof.calculaSala-
rio(60 , 1.5));
//Calcula salario da Classe Funcionario
System.out.println(“Salario do Técnico: “+tecnico.
calculaSalario(60));
DEITEL, P.; DEITEL, H. Java: como programar. 10. ed. São Paulo: Pearson Education do 
Brasil, 2017.
GOLDBERG, A. Smalltalk-80: the interactive programming environment. Boston: Addison-
-Wesley, 1984.
RUMBAUGH, J. et al. Object-oriented modeling and design. Englewood Cliffs: Prentice-
-Hall, 1991.
11Herança na orientação a objetos
Dica do professor
Quando se fala de herança, existem muitos conceitos do paradigma de programação orientada a 
objetos envolvidos. Por exemplo, se diz que uma classe-filha é uma classe especializada da classe-
pai, e que a classe-pai é uma generalização.
Nesta Dica Do Professor, você vai ver um pouco mais sobre esses conceitos importantes 
relacionados à herança na programação orientada a objetos.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
 
https://fast.player.liquidplatform.com/pApiv2/embed/cee29914fad5b594d8f5918df1e801fd/4051e6ed05223634989cc984ecb49e43
Exercícios
1) Um dos principais conceitos da orientação a objetos é o encapsulamento de dados. O 
encapsulamento em Java é 
realizado por meio de modificadores de acesso.
Assinale a alternativa que apresenta o modificador que, em uma herança, permite somente 
as classes filhas de acessar um atributo 
da classe pai.
A) Modificador private.
B) Modificador protected.
C) Modificador public.
D) Modificador default.
E) Modificador extends.
2) Em uma classe, temos construtores que são usados para inicializar a classe. Quando, em uma 
relação de herança, tanto a superclasse quanto a classe filha têm construtores, os dois 
devem ser executados.
Assinale a alternativa que indica como isso ocorre em Java.
A) Para executar o método construtor da superclasse, deve-se aplicar a palavra-chave extends. 
Para isso, basta chamar extends na classe filha e passar uma lista de parâmetros que o 
construtor da superclasse espera receber.
B) Para executar o método construtor da superclasse, deve-se aplicar a palavra- chave 
implements. Para isso, basta chamar implements na classe filha e passar uma lista de 
parâmetros que o construtor da superclasse espera receber.
C) Para executar o método construtor da superclasse, deve-se aplicar a palavra-chave super. 
Para isso, basta chamar super na classe filha e passar uma lista de parâmetros que o 
construtor da superclasse espera receber.
Para executar o método construtor da superclasse, deve-se aplicar a palavra-chave abstract. 
Para isso, basta chamar abstract na classe filha e passar uma lista de parâmetros que o 
D) 
construtor da superclasse espera receber.
E) Para executar o método construtor da superclasse, deve-se reescrevê-lo na classe filha. Para 
isso, basta chamar extends na classe filha e passar uma lista de parâmetros que o construtor 
da superclasse espera receber.
3) O método construtor de uma classe Java é um método especial, que tem o mesmo nome da 
classe e é executado quando a classe é instanciada. Em Java, é possível realizar sobrecarga 
de construtor.
Assinale a alternativa que apresenta a definição correta de sobrecarga de construtor.
A) É possível criar vários métodos construtores, todos com os mesmos parâmetros.
B) É possível criar vários métodos construtores, todos com parâmetros diferentes.
C) É possível criar somente um método construtor e estender esse método por meio de herança.
D) É possível criar vários métodos construtores encapsulando os atributos no método.
E) É possível criar vários métodos construtores somente em superclasses.
4) Ao aplicar o conceito de herança em Java, aplica-se em todos os métodos, inclusive os 
métodos construtores da classe.
Nesse contexto, analise o seguinte código em Java: 
Clique aqui 
Assinale a alternativa que indica a saída ao instanciar um objeto da classe horista.
A) Ao se criar um objeto da classe horista será exibida a mensagem "Novo funcionário".
B) Ao se criar um objeto da classe horista será exibida a mensagem "Paulo".
C) Ao se criar um objeto da classe horista não será exibida nenhuma mensagem.
D) Ao se criar um objeto da classe horista será exibida a mensagem "Novo funcionário Paulo".
E) Ao se criar um objeto da classe horista ocorrerá um erro, pois essa classe horista não tem 
construtor.
5) 
https://statics-marketplace.plataforma.grupoa.education/sagah/61142c50-6aff-4181-a147-111672c4ad7c/23daaa64-108e-4e3a-b23b-c1d5dbc48c8d.pdf
A sobreescrita de métodos é um dos pilares da programação orientada a objetos. Além de 
herdar os atributos e os métodos da superclasse, a classe herdeira pode adaptar os métodos 
herdados.
Analise o código Java a seguir: 
Clique aqui
Assinale a alternativa que indica o resultado da operação. 
Clique aqui
 
A) O resultado será 600.0, pois o método getBonificacao é sobrescrito na classe gerente.
B) O resultado será 400.0, pois a classe gerente herda da classe funcionário e será executado o 
método da superclasse.
C) O resultado será 1000.0, pois serão executados os métodos da classe gerente e funcionário.
D) O resultado será um erro de execução, pois a classe gerente não tem um atributo salário para 
o cálculo.
E) O resultado será 400.0, pois a classe gerente sobrecarrega a classe funcionário e será 
executado o método da superclasse.
https://statics-marketplace.plataforma.grupoa.education/sagah/2dfa8b00-aed0-4764-8a34-7438b7e3a4a3/7d37531d-5cb3-42f6-9a50-5f74ec49011c.pdf
https://statics-marketplace.plataforma.grupoa.education/sagah/0cbec80c-e6ff-4411-8b3c-256d2d2c7135/f9271398-21b7-414b-9991-3463652f06eb.pdf
Na prática
Muitas vezes, no desenvolvimento de um projeto em Java, 
o programador se depara com funcionalidades semelhantes, 
mas com circunstâncias especiais. Nesse caso, o programador 
pode usar o conceito de herança e sobrecarga de construtores 
na classe pai para fazer com que as classes filhas compartilhem 
alguns atributos e métodos.
Neste Na Prática, você vai ver como Mariana usa sobrecarga de construtores no seu dia a dia no 
desenvolvimento de sistemas Java.
Aponte a câmera para o 
código e acesse o link do 
conteúdo ou clique no 
código para acessar.
https://statics-marketplace.plataforma.grupoa.education/sagah/635f8b15-37a4-4b0c-bed6-2bb09548907a/a19aebf8-cf20-4915-863a-6ca461b5b294.jpgSaiba +
Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professor:
Herança: conceitos principais
Para conhecer os conceitos principais de herança em Java, consulte o conteúdo presente nas 
páginas 399 a 437, do livro “Conceitos de Computação com Java”, de Cay Horstmann.
Conteúdo interativo disponível na plataforma de ensino!
Herança em exemplos comentados
Consulte o livro “Java para Iniciantes”, mais especificamente nas páginas 218 a 255, para 
acompanhar exemplos comentados de códigos fontes que utilizam herança em Java.
Conteúdo interativo disponível na plataforma de ensino!
Síndrome do desfiladeiro torácico: uma revisão narrativa
Para conhecer mais conceitos importantes e exemplos interessantes de herança em Java, acesse o 
site a seguir e consulte o material “Herança: Programação Orientada a Objetos”.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
https://www.devmedia.com.br/conceitos-e-exemplos-heranca-programacao-orientada-a-objetos-parte-1/18579

Continue navegando