SlideShare uma empresa Scribd logo
1 de 15
HERANÇA - POO
 A herança é uma forma eficaz de reutilização de código.
 Criamos novas classes a partir de classes já existentes,
absorvendo seus atributos e comportamentos.
 Com a utilização da herança criamos uma hierarquia de
classes.
 Essas classes estão relacionadas, ou seja, possuem
características semelhantes.
Herança
Herança
 No paradigma orientado a objetos, podemos definir um conjunto de
classes em uma estrutura hierárquica onde cada uma das classes
“herda” características das suas superiores nesta estrutura.
 No mundo real temos que uma pessoa herda características de
seus pais que herdaram de seus avós e assim por diante.
Respeitando as limitações das linguagens de programação, o que
acontece quando utilizamos herança no nosso código é uma
tentativa de implementar esta propriedade da natureza.
Herança
 Uma relação entre duas classes;
 A classe genérica é chamada de super classe, classe base ou classe mãe;
 As classes específicas são chamadas de sub classes, classes derivadas
ou classes filhas.
 Significa que “toda classe específica é uma especialização de classe
genérica”;
Herança em Java
 No Java, não é possível que uma subclasse possua duas superclasses!
 NÃO EXISTE HERANÇA MÚLTIPLA.
 Superclasse: Nela estarão todos os métodos e atributos comuns às classes
específicas.
 Subclasse: A subclasse possui tudo que a superclasse possui, acrescido de
suas especialidades;
Herança
 Com a criação dessa hierarquia, surgem dois novos conceitos:
 Superclasse (classe mãe)
 Subclasse (classe filha)
 O relacionamento criado entre uma superclasse e uma subclasse pode ser chamado de
relacionamento “é um”.
Herança
 Dizemos que a subclasse estende da superclasse.
 Então, para criarmos uma herança em nosso sistema, utilizamos a palavra reservada extends.
Exemplo:
public class Professor extends Funcionario {
}
 No exemplos acima, dizemos que o Professor “é um” Funcionario.
 Temos como superclasse o Funcionario e subclasse o Professor
Herança
 Lembram do modificador de acesso protected?
 É para ser utilizado juntamente com a herança.
 Ou seja, todos os atributos ou métodos com o modificador
protected somente serão acessados por subclasses ou por outras
classes pertencentes ao mesmo pacote.
Herança
 Se uma subclasse herda os comportamentos da superclasse, então
toda subclasse vai fazer as mesmas coisas da superclasse ?
 1. Podemos adicionar comportamentos exclusivos da subclasse;
 2. Podemos sobrescrever um comportamento existente na
superclasse.
Herança – Exemplo prático
Veículo
Avião Automóvel
Classes Abstratas
 É um tipo de classe especial que não pode ser instanciada,
apenas herdada. Sendo assim, uma classe abstrata não pode ter
um objeto criado a partir de sua instanciação.
 Essas classes são muito importantes quando não queremos criar
um objeto a partir de uma classe “geral”, apenas de suas
“subclasses”.
Classes Abstratas
 Em Java definimos uma classe como abstrata utilizando uma palavra-
chave abstract na declaração da classe.
 Uma classe abstrata é desenvolvida para representar entidades e
conceitos abstratos, sendo utilizados como uma classe pai, pois não
pode ser instanciada.
 Ela define um modelo (template) para uma funcionalidade e aplicação
uma implementação incompleta - a parte genérica dessa funcionalidade
- que é compartilhada por um grupo de classes derivadas. Cada uma
das classes derivadas completa a funcionalidade da classe abstrata
adicionando um comentário específico.
Métodos e Classes Abstratas
 Como vimos, subclasses podem redefinir (@Override) um método
definido em sua superclasse. Assim como podem usar o método
da forma como foi herdado da superclasse.
 Para indicar que um método de uma classe deve ser
necessariamente redefinido em cada uma de suas subclasses este
método deve ser declarado como abstract.
 O que é um método abstrato? É um método que não tem um
corpo, ou seja, um método não implementado.
Métodos e Classes Abstratas
 Uma classe que contém um ou mais métodos abstratos deve ser
declarada explicitamente como abstrata.
 Essa classe, no entanto, pode ter métodos concretos (não-
abstratos).
 Declarar um método como abstrato é uma forma de obrigar o
programador a redefinir esse método em todas as subclasses para
as quais deseja criar objetos.
Herança.pptx

Mais conteúdo relacionado

Semelhante a Herança.pptx

Java 09 Heranca Reescrita Polimorfismo
Java 09 Heranca Reescrita PolimorfismoJava 09 Heranca Reescrita Polimorfismo
Java 09 Heranca Reescrita PolimorfismoRegis Magalhães
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a pooSedu
 
Apresentação sobre Herança - Orientação a Objetos
Apresentação sobre Herança - Orientação a ObjetosApresentação sobre Herança - Orientação a Objetos
Apresentação sobre Herança - Orientação a Objetosmauroladeiafilho
 
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vbaConceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vbaWanderlei Silva do Carmo
 
Princípio da da Substituição de Liskov
Princípio da  da Substituição de LiskovPrincípio da  da Substituição de Liskov
Princípio da da Substituição de Liskoveliasor
 
Lsp — the liskov substitution principle
Lsp — the liskov substitution principleLsp — the liskov substitution principle
Lsp — the liskov substitution principleeliasor
 
Aula 4 acessibilidade
Aula 4   acessibilidadeAula 4   acessibilidade
Aula 4 acessibilidadeDanilo Alves
 
Asp.Net Módulo3
Asp.Net  Módulo3Asp.Net  Módulo3
Asp.Net Módulo3michellobo
 
Curso de java - Antonio Alves - aula 04
Curso de java - Antonio Alves -  aula 04Curso de java - Antonio Alves -  aula 04
Curso de java - Antonio Alves - aula 04Antonio Alves
 
Sintaxe Ling Java Pilares Oo 4
Sintaxe Ling Java Pilares Oo 4Sintaxe Ling Java Pilares Oo 4
Sintaxe Ling Java Pilares Oo 4Felipe Valcanaia
 
Orientação a objetos php
Orientação a objetos   phpOrientação a objetos   php
Orientação a objetos phpsecomp2011
 

Semelhante a Herança.pptx (20)

Java 09 Heranca Reescrita Polimorfismo
Java 09 Heranca Reescrita PolimorfismoJava 09 Heranca Reescrita Polimorfismo
Java 09 Heranca Reescrita Polimorfismo
 
Aula Herança
Aula HerançaAula Herança
Aula Herança
 
Aula orientação a objetos
Aula orientação a objetosAula orientação a objetos
Aula orientação a objetos
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a poo
 
POO Herança
POO HerançaPOO Herança
POO Herança
 
Orientação a Objetos
Orientação a ObjetosOrientação a Objetos
Orientação a Objetos
 
Poo padadigmas
Poo padadigmasPoo padadigmas
Poo padadigmas
 
Apresentação sobre Herança - Orientação a Objetos
Apresentação sobre Herança - Orientação a ObjetosApresentação sobre Herança - Orientação a Objetos
Apresentação sobre Herança - Orientação a Objetos
 
Preparatório uml aula2
Preparatório uml   aula2Preparatório uml   aula2
Preparatório uml aula2
 
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vbaConceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
 
Orientação à objetos conceituação
Orientação à objetos   conceituaçãoOrientação à objetos   conceituação
Orientação à objetos conceituação
 
Princípio da da Substituição de Liskov
Princípio da  da Substituição de LiskovPrincípio da  da Substituição de Liskov
Princípio da da Substituição de Liskov
 
Lsp — the liskov substitution principle
Lsp — the liskov substitution principleLsp — the liskov substitution principle
Lsp — the liskov substitution principle
 
Aula 4 acessibilidade
Aula 4   acessibilidadeAula 4   acessibilidade
Aula 4 acessibilidade
 
Asp.Net Módulo3
Asp.Net  Módulo3Asp.Net  Módulo3
Asp.Net Módulo3
 
Curso de java - Antonio Alves - aula 04
Curso de java - Antonio Alves -  aula 04Curso de java - Antonio Alves -  aula 04
Curso de java - Antonio Alves - aula 04
 
Sintaxe Ling Java Pilares Oo 4
Sintaxe Ling Java Pilares Oo 4Sintaxe Ling Java Pilares Oo 4
Sintaxe Ling Java Pilares Oo 4
 
Orientação a objetos php
Orientação a objetos   phpOrientação a objetos   php
Orientação a objetos php
 
10 heranca
10   heranca10   heranca
10 heranca
 
Aula 1 5
Aula 1 5Aula 1 5
Aula 1 5
 

Herança.pptx

  • 2.  A herança é uma forma eficaz de reutilização de código.  Criamos novas classes a partir de classes já existentes, absorvendo seus atributos e comportamentos.  Com a utilização da herança criamos uma hierarquia de classes.  Essas classes estão relacionadas, ou seja, possuem características semelhantes. Herança
  • 3. Herança  No paradigma orientado a objetos, podemos definir um conjunto de classes em uma estrutura hierárquica onde cada uma das classes “herda” características das suas superiores nesta estrutura.  No mundo real temos que uma pessoa herda características de seus pais que herdaram de seus avós e assim por diante. Respeitando as limitações das linguagens de programação, o que acontece quando utilizamos herança no nosso código é uma tentativa de implementar esta propriedade da natureza.
  • 4. Herança  Uma relação entre duas classes;  A classe genérica é chamada de super classe, classe base ou classe mãe;  As classes específicas são chamadas de sub classes, classes derivadas ou classes filhas.  Significa que “toda classe específica é uma especialização de classe genérica”;
  • 5. Herança em Java  No Java, não é possível que uma subclasse possua duas superclasses!  NÃO EXISTE HERANÇA MÚLTIPLA.  Superclasse: Nela estarão todos os métodos e atributos comuns às classes específicas.  Subclasse: A subclasse possui tudo que a superclasse possui, acrescido de suas especialidades;
  • 6. Herança  Com a criação dessa hierarquia, surgem dois novos conceitos:  Superclasse (classe mãe)  Subclasse (classe filha)  O relacionamento criado entre uma superclasse e uma subclasse pode ser chamado de relacionamento “é um”.
  • 7. Herança  Dizemos que a subclasse estende da superclasse.  Então, para criarmos uma herança em nosso sistema, utilizamos a palavra reservada extends. Exemplo: public class Professor extends Funcionario { }  No exemplos acima, dizemos que o Professor “é um” Funcionario.  Temos como superclasse o Funcionario e subclasse o Professor
  • 8. Herança  Lembram do modificador de acesso protected?  É para ser utilizado juntamente com a herança.  Ou seja, todos os atributos ou métodos com o modificador protected somente serão acessados por subclasses ou por outras classes pertencentes ao mesmo pacote.
  • 9. Herança  Se uma subclasse herda os comportamentos da superclasse, então toda subclasse vai fazer as mesmas coisas da superclasse ?  1. Podemos adicionar comportamentos exclusivos da subclasse;  2. Podemos sobrescrever um comportamento existente na superclasse.
  • 10. Herança – Exemplo prático Veículo Avião Automóvel
  • 11. Classes Abstratas  É um tipo de classe especial que não pode ser instanciada, apenas herdada. Sendo assim, uma classe abstrata não pode ter um objeto criado a partir de sua instanciação.  Essas classes são muito importantes quando não queremos criar um objeto a partir de uma classe “geral”, apenas de suas “subclasses”.
  • 12. Classes Abstratas  Em Java definimos uma classe como abstrata utilizando uma palavra- chave abstract na declaração da classe.  Uma classe abstrata é desenvolvida para representar entidades e conceitos abstratos, sendo utilizados como uma classe pai, pois não pode ser instanciada.  Ela define um modelo (template) para uma funcionalidade e aplicação uma implementação incompleta - a parte genérica dessa funcionalidade - que é compartilhada por um grupo de classes derivadas. Cada uma das classes derivadas completa a funcionalidade da classe abstrata adicionando um comentário específico.
  • 13. Métodos e Classes Abstratas  Como vimos, subclasses podem redefinir (@Override) um método definido em sua superclasse. Assim como podem usar o método da forma como foi herdado da superclasse.  Para indicar que um método de uma classe deve ser necessariamente redefinido em cada uma de suas subclasses este método deve ser declarado como abstract.  O que é um método abstrato? É um método que não tem um corpo, ou seja, um método não implementado.
  • 14. Métodos e Classes Abstratas  Uma classe que contém um ou mais métodos abstratos deve ser declarada explicitamente como abstrata.  Essa classe, no entanto, pode ter métodos concretos (não- abstratos).  Declarar um método como abstrato é uma forma de obrigar o programador a redefinir esse método em todas as subclasses para as quais deseja criar objetos.