Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Classe sem construtor

class B { 
    private B() {} 
    static B B(String s) { 
        return new B(); 
    }
}
class A extends B {
    public static void main(String[] args) {
        B b = B.B("t");
    }
}

"O código não compila pois não existe construtor de B ao qual A tenha acesso para herdar do mesmo."

pelo que entendi, como na classe B foi definido um construtor, deixa de haver um default. e como a classe A herda de B, ela fica sem construtor, e da erro de compilacao mesmo que nao haja tentativa de se instanciar um objeto A, seria isso? entao se for colocado em A algo como A () {}, vai compilar? Mesmo uma classe que traz o main obrigatoriamente precisa ter um construtor? (essa classe nao sera instanciada, o proprio main eh estatico)

1 resposta
solução

Vitor algo semelhante do seu tópico anterior rsrs

Lembre-se sempre que ao usar o extends é executado o construtor da classe pai, porém como o construtor da classe pai está com o modificador private nenhuma outra classe consegue acessa-lo, para resolver esse problema podemos alterar o modificador de acesso para protected ou public ou simplesmente remove-lo

class B {
    protected B() {

    }

    static B B(String s) {
        return new B();
    }
}

class A extends B {
    public static void main(String[] args) {
        B b = B.B("t");
    }
}
class B {
    B() {

    }

    static B B(String s) {
        return new B();
    }
}

class A extends B {
    public static void main(String[] args) {
        B b = B.B("t");
    }
}

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software