terça-feira, 24 de fevereiro de 2015

0.0.0.11.3 - Herança

Java permite criar classes baseada em outra classe. A classe inicial é chamada super-classe (usa-se também classe pai ou classe base). A classe criada é chamada sub-classe (usa-se também classe filha ou classe derivada).

Baseado significa que a sub-classe contém todos os atributos e métodos da super-classe. Esse mecanismo é chamado herança.
Em outras palavras, a sub-classe herda os atributos e métodos da super-classe. Isto é uma forma de reúso de código, ou seja, evita que se escreva o mesmo código mais de uma vez.

Uma sub-classe é definida com o comando extends. Em Java, diz-se que a sub-classe estende a super-classe.

Com uma sub-classe o programador pode sobrescrever métodos e ocultar atributos.

Em Java, uma sub-classe pode ter apenas uma super-classe - não há herança múltipla.

O funcionamento de variáveis e métodos precisa ser pensado em relação à definição de herança:

A superclasse tem seus atributos com certo nome e métodos com certas assinaturas. A subclasse pode ter atributos e métodos com os mesmos nomes e assinaturas.

A superclasse não é modificada pela subclasse no sentido que o funcionamento de instâncias da superclasse não muda pela existência (ou não) de subclasses;

Definir na subclasse atributos de mesmo nome dos da superclasse ocultam os atributos da superclasse. Numa instância e num método da subclasse, o atributo da subclasse é acessado através do nome. Em um método da subclasse, o atributo da superclasse pode ser acessado com o "prefixo" super. Fora da subclasse o atributo não é acessível.

Definir na subclasse métodos de mesma assinatura dos da superclasse sobrescrevem estes. O funcionamento é análogo ao das variáveis, o uso de super também tem o mesmo efeito.


Tarefas:
    Escrever exemplos de herança, ocultamento de variáveis, sobrescrita de métodos.

Nenhum comentário:

Postar um comentário