Você está na página 1de 3

ETEC Profº Horácio Augusto da Silveira ETEC Profº Horácio Augusto da Silveira

SOBRECARGA (OVERLOAD)
DESENVOLVIMENTO DE
 A sobrecarga de método é a possibilidade de implementar dois ou mais métodos
SOFTWARE I com o mesmo nome e diferentes passagens de parâmetros.

JAVA™  As diferenças nos parâmetros podem ser na quantidade e/ou no tipo.

 A sobrecarga pode ser implementada tanto em métodos da mesma classe quanto


Herança em métodos herdados de uma superclasse.

– Sobrecarga  Um exemplo bem comum (e já utilizado) é a implementação de dois construtores,


um com e outro sem passagem de parâmetros.
– Sobrescrita
– Classe Abstrata
– Método Abstrato

2
2
Desenvolvimento de Software I – 2º Módulo

ETEC Profº Horácio Augusto da Silveira ETEC Profº Horácio Augusto da Silveira

SOBRESCRITA (OVERWRITE) HERANÇA


 A sobrescrita ou reescrita de método esta diretamente relacionada com herança e  A estrutura da classe abaixo foi projetada para que os códigos duplicados fossem
é a possibilidade de manter a mesma assinatura de um método herdado e reduzidos (herança).
reescrevê-lo na subclasse.
 A classe Veiculo foi construída para ser adequada e flexível, permitindo que
 Na chamada de um método sobrescrito o Java considera primeiro a classe a qualquer subtipo de Veiculo possa usar seus atributos e métodos.
partir da qual o objeto foi instanciado, se a superclasse possuir um método com a
Veiculo
mesma assinatura este será descartado.
modelo
cor
motor
potência

correr ( )

Caminhao
Carro
capacidade
tempo ( 0 a 200) carroceria
velocidadeMáxima
transportar( )
acelerar ( ) tombar()
3
3 4
4
Desenvolvimento de Software I – 2º Módulo Desenvolvimento de Software I – 2º Módulo
ETEC Profº Horácio Augusto da Silveira ETEC Profº Horácio Augusto da Silveira

HERANÇA HERANÇA
Sabemos que podemos dizer: E sabemos que podemos dizer:

Carro rcar = new Carro(); Veiculo rtruck = new Caminhao();

Veiculo
Carro
Uma referência de modelo Uma referência de
cor
tempo ( 0 a 200) Carro a um objeto Veiculo a um
velocidadeMáxima motor
rcar Carro potência rtruck objeto Caminhao
acelerar ( ) correr ( )

Esses dois tem o mesmo tipo Esses dois não tem o mesmo tipo

5
5 6
6
Desenvolvimento de Software I – 2º Módulo Desenvolvimento de Software I – 2º Módulo

ETEC Profº Horácio Augusto da Silveira ETEC Profº Horácio Augusto da Silveira

HERANÇA HERANÇA
Mas aqui é que começa a ficar estranho: Qual a aparência de um novo objeto Veiculo?

Veiculo veic = new Veiculo(); Objetos estranhos:

Veiculo

modelo
cor
motor
potência
?
veic
correr ( )

Esses dois tem o mesmo tipo, mas...


Qual é a aparência?

7
7 8
8
Desenvolvimento de Software I – 2º Módulo Desenvolvimento de Software I – 2º Módulo
ETEC Profº Horácio Augusto da Silveira ETEC Profº Horácio Augusto da Silveira

HERANÇA CLASSE ABSTRATA


Algumas classes não deviam ser instanciadas!  Classe que não pode ser instanciada. Em outras palavras, impede que alguém
use new com essa classe.
 Faz sentido criar um objeto Carro ou um objeto Caminhao.
 Uma classe abstrata praticamente não tem utilidade, valor, razão de existir, a
 Mas, o que exatamente é um objeto Veiculo? Que forma ele tem? Que modelo, menos que seja estendida.
cor, potência...
 Se marcarmos a classe com abstract, o compilador impedirá que qualquer
 Precisamos de uma classe Veiculo devido à herança. Mas, queremos que os código, esteja onde estiver, crie uma instância desse tipo.
programadores instanciem somente as subclasses e não a própria classe Veiculo.
 Quando você estiver projetando sua estrutura de herança de classe, terá que
decidir que classes serão abstratas e quais serão concretas.

X
Queremos objetos Carro e objetos Caminhao e não objetos Veiculo
 Criar uma classe abstrata é fácil – insira a palavra-chave abstract antes da
declaração da classe:

abstract class Veiculo{

9
9 10
10
Desenvolvimento de Software I – 2º Módulo Desenvolvimento de Software I – 2º Módulo

ETEC Profº Horácio Augusto da Silveira ETEC Profº Horácio Augusto da Silveira

MÉTODO ABSTRATO
DESENVOLVIMENTO DE
 Além das classes, podemos marcar os métodos como abstratos.
SOFTWARE I
 Uma classe abstrata significa que ela deve ser estendida. Um método abstrato
significa que ele deve ser sobreposto. JAVA™
 Um método abstrato não tem corpo (possui apenas a assinatura do método e
não contém código). Herança
 Portanto, não haverá chaves no método – simplesmente termine a declaração – Sobrecarga
com ponto e vírgula.
– Sobrescrita
– Classe Abstrata
public abstract void area(); – Método Abstrato

 Se o método for marcado como abstrato, a classe também DEVE ser abstrata.

 Não é possível ter um método abstrato em uma classe não abstrata.

11
11
Desenvolvimento de Software I – 2º Módulo

Você também pode gostar