Qual é o modificador de acesso do construtor padrão em java?
Todos sabemos que, se não definirmos especificamente um construtor, o compilador inserirá um construtor invisível de parâmetro zero. Eu pensei que seu modificador de acesso era público, mas ao lidar com um problema de classe interna, achei que talvez estivesse errado. Aqui está o meu código:
public class Outer {
protected class ProtectedInner {
// adding a public constructor will solve the error in SubOuterInAnotherPackage class
//public ProtectedInner() {}
}
}
E há uma subclasse deOuter
em outro pacote:
public class SubOuterInAnotherPackage extends Outer {
public static void main(String[] args) {
SubOuterInAnotherPackage.ProtectedInner protectedInner
= new SubOuterInAnotherPackage().new ProtectedInner(); // Error!! Can't access the default constructor
}
}
Você receberá um erro nomain()
método, mas se você adicionar um construtor público ao métodoProtectedInner
classe, esse erro foi resolvido. É por isso que estou pensando que o modificador do construtor padrão não é público! Então, alguém poderia me dizer qual é o modificador de acesso do construtor padrão?