O que são uma final Class e uma classe default em Java

Saiba que dá para fazer as seguintes coisas:

public final class ClasseFinal {

}

class ClasseDefault {

}

Agora a pergunta: Para que servem os dois tipos de classe?

A resposta: Para dar dor-de-cabeça a outros programadores. 😛

Na verdade, quando você tem um final da declaração de uma classe, isso quer dizer que você não pode herdar dela (ou seja, ela não possui filhos…). Uma classe para este exemplo, é a String (que é final):

//Impossível!!!
public class MinhaString extends String {

}

E quando uma classe não possui “public” (ou seja, seu “tipo de acesso” é “default”), a classe é utilizada somente por classes que estejam no mesmo pacote (ela também pode ser declarada no mesmo arquivo de uma que tenha acesso “public”):

package org.teste.publico;

public class ClassePublica {
private ClasseDefault classeDefault;

}
class ClasseDefault {

}

Bizarro, não?

Até mais!

Programação Java é aqui. Acesse as o blog para ficar atualizado sobre o mundo da Linguagem Java. Dicas, informações e muitos truques para se usar no dia-a-da do programador java.