You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
TRATAMENTO DE EXCEÇÕ ES<br />
Nessa nova hierarquia, as classes Plana e Espacial também deverão ser abstratas, apesar de serem<br />
subclasses da classe Geometria.<br />
* O aluno deve exercitar bastante a idéia de generalização e especialização proposta pela hierarquia de<br />
classes. Essa é a idéia central do paradigma de Orientação a Objetos e é inspirada no que se acredita<br />
ser a base do pensamento humano.<br />
Restrição de herança pelo modificador final<br />
Nas seções anteriores, vimos o uso do modificador final para definirmos membros variáveis com valores<br />
constantes. Além de definir valores constantes, o modificador final pode ser usado para restringir a<br />
herança de classes e métodos:<br />
/** Classe final – que não pode ser extendida. */<br />
final class Quadrado extends Retângulo<br />
{<br />
// O construtor Quadrado é implicitamente final<br />
Quadrado(double lado)<br />
{<br />
super(lado, lado);<br />
}<br />
}<br />
O exemplo acima define a classe Quadrado como final, ou seja, nenhuma outra classe opderá estender a<br />
classe Quadrado. O construtor da classe não foi implementado com o modificador final. Apesar disso, o<br />
construtor é final porque todos os métodos de uma classe final são implicitamente final. Também<br />
podemos ter métodos final, ou seja, uma classe normal possuir um dos seus métodos modificados como<br />
final. Nesse caso, essa classe pode ser estendida, mas a subclasse não poderá sobrecarregar esse<br />
método final.<br />
As referências this e super<br />
Até aqui acessamos objetos através de referências explicitamente criadas no código dos programas.<br />
Entretanto, quando um objeto é instanciado na memória, são criadas duas referências implícitas: super e<br />
this. A referência super diz respeito à superclasse de um objeto e a referência this referencia o próprio<br />
objeto.<br />
Para referenciarmos a superclasse de um objeto usamos a palavra reservada super. Note no exemplo<br />
anterior, que o construtor da classe Quadrado chama um método super(lado, lado);. Isso significa que o<br />
construtor da classe Quadrado está chamando o construtor de sua superclasse Retângulo, e passando<br />
os argumentos exigidos por esse construtor.<br />
Outro exemplo de utilização da referência super é com o operador ponto:<br />
/** Classe final – que não pode ser extendida. */<br />
final class Quadrado extends Retângulo<br />
70