Programação Orientada a Objeto
Orientada a Objetos I
João Mendes de Oliveira Neto
Onde Estamos?
• Paradigma Orientado a Objetos x Paradigma Estruturado
• Sintaxe da Linguagem Java
• Classes, atributos e métodos
• Objetos e Classes
• Encapsulamento
• Atributos e métodos estáticos
• Construtores
• Sobrecarga de métodos e de construtores (Overloading)
• Herança
• Conversão entre tipos (UpCasting e DownCasting)
• Sobrescrita de métodos (Overriding)
2
Herança
• Herança é o processo que permite criar uma classe que herde todas as características de outra existente;
• A nova classe é chamada de classe derivada (subclasse) e a classe existente, de classe base (superclasse);
• É possível incluir, na classe derivada, características próprias adicionais além das herdadas;
3
Herança
• É importante identificar a diferença entre composição e herança:
• Na herança, um objeto da subclasse “é um” objeto da superclasse.
Por exemplo, o carro é um veículo;
• Enquanto que na composição um objeto “tem um” outro objeto.
Por exemplo, o carro tem uma direção;
• O processo de herança vai além da derivação simples. Uma classe derivada pode herdar características de mais de uma classe base;
• Uma das maiores vantagens do processo de herança é a reutilização de código;
4
Herança Simples
• A herança costuma formar estruturas hierárquicas do tipo árvore, vejamos: Pessoa
Empregado
Docente
Coordenador
Aluno
Administrativo
Professor
Professor
Coordenador
Herança Simples
Herança Múltipla
5
Exemplo
6
Exemplo
7
Exemplo
8
Exemplo
9
Construtores em SubClasses
• Implicitamente
• Cadeia de chamada ao construtor da(s) super classe
• Exemplo:
Chamada dos construtores
Subclasse, Superclasse, object
• Explicitamente
• Utilizamos a palavra super, no construtor da subclasse
• Exemplo: super(argumento1, argumento2, ..., argumento n)
10
Exemplo
• O segredo está na criação da superclasse
• Identificamos todas as características em comuns com as subclasses
11
Exemplo
12
Classe Object
• Todas