herança e polimorfismo em java
DESCRIPTION
Herança e polimorfismo em JavaTRANSCRIPT
Herança/Polimorfismo
em JAVAJAVA
Curso técnico de Informática, SENAC / MGOrientador Evandro Júnior
• Mecanismo pelo qual elementos mais específicos (subclasses) incorporam estrutura e comportamento de elementos mais gerais (superclasses).
// SuperClass.javapublic class SuperClass {...}// SubClass.javapublic class SubClass extends SuperClass {...}
Herança é a capacidade de reutilizar código pela especialização de soluções genéricas já existentes.
Herança é na verdade, uma classe derivada de outra classe. Processo no qual uma classe herda características de outra.
Herança
Herança
Subclasse
Herda atributos e métodos Modifica métodos Acrescenta novos atributos e métodos
A subclasse estende a superclasse
Herança
Herança
Os animais
• Todos os nossos animais herdam da classe Animal, porque todos eles fazem coisas parecidas, como comer, andar, dormir e fazer barulhos;
• Além dessas ações, a classe animal tem propriedades para designar peso, altura e a cor de sua pele (ou pelos);
Herança
Classe Animal
Herança
Indo para os outros animais • Agora nós não precisamos mais implementar essas mesmas funcionalidades
básicas nos nossos animais, todos eles vão herdar as qualidades da classe Animal;
• Quando um dos nossos animais não estiver interessado na funcionalidade provida pela classe Animal ele vai poder alterar essa funcionalidade só para ele;
• Os objetos que herdam de animal são versões especializadas do nosso animal;
• Para informar que uma classe herda da outra nós usamos a palavra reservada “extends ”;
Herança
Exemplo
Funcionário
NomeRGSalarioAumento(valor)Pagamento()
ChefeContasGastos_extraAdicional_chefiaPagamento_extra()
Herança
Implementação da subclasse Chefe
Herança
Instanciação da subclasse
Herança
Hierarquia de Classes
Superclasse direta:• Herdada explicitamente (um nível acima da
hierarquia).
Superclasse indireta:• Herdada de dois ou mais níveis acima da hierarquia.
Herança
Hierarquia de Classes
Herança única:• Herda de uma superclasse.
Herança múltipla:• Herda de múltiplas superclasses.– Java não suporta herança múltipla
Polimorfismo
Polimorfismo = várias formas
É o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma identificação (assinatura) mas comportamentos distintos.
Polimorfismo
Animal
TipoCorPeso...
Comer()
Cachorro
Comer() { “cachorro come ração...”}
Tigre
Comer() { “cachorro come osso...”}
Herança
Exemplo de animal especializado