/ / Por que uma classe não pode ser protegida enquanto pode ter um modificador padrão em java - java, default, protected, modifiers

Por que uma classe não pode ser protegida enquanto pode ter um modificador padrão nos modificadores java - java, default, protected?

Embora a visibilidade de um modificador padrão venha abaixo de protegida na herança dos modificadores, por que uma classe pode ser definida como padrão, mas não protegida?

Respostas:

1 para resposta № 1

por que uma classe pode ser definida como padrão, mas não protegida?

Uma pergunta mais sensata seria, por que o Java tolera qualquer coisa, exceto classes públicas de nível superior?

A disposição para permitir classes de nível superior privadas de pacote já é um hack das primeiras versões do Java, melhorado e substituído por aninhado classes, que podem ser protected se você quiser.


0 para resposta № 2

Espero que você se refira à classe de nível superior (só pode ser pública ou padrão). Caso contrário, as classes internas podem ter qualquer modificador.

Quando dizemos protegida, significa que ela é acessível a partir de todas as subclasses da classe que inclui a entidade protegida (pode ser uma classe).

Se a classe mais externa for protegida, ela define a própria definição de modificador protegido.


0 para resposta № 3

Se você tem um protected classe interna ou aninhada, o acesso é permitido de dentro do mesmo pacote ou subclasses da classe externa ou algo semelhante.

Se você tiver uma classe de nível superior protegida, não haverá uma classe externa da qual ter subclasses para obter acesso, portanto, protected não tem sentido.

Exemplo de Ex. É válido para um tipo aninhado ser protegido embora:

public class Foo {
protected static class Bar{}
}

Isso permite subclasses de Foo acessar Bar.


0 para a resposta № 4

classe pode ser protegida !. eu, a classe interna pode ser protegida.

class A{
protected class C{
}
}

Protedted entra em cena quando falamos sobre herança (estende). É por isso que não podemos ter nada fora do contexto de herança protegido.!