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?

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.