Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Herança, reescrita e polimorfismo.

O texto dessa aula está um pouco contraditório em relação ao vídeo. Afinal, é melhor colocar a variável como protetecd ou private quando utilizamos o extends de classes? No vídeo e no texto exitem afirmações distintas.

3 respostas

Olá Thiago

Quando desenvolvemos uma aplicação é sempre melhor esconder ao máximo a implementação das classes (princípio do encapsulamento). Então o melhor é sempre utilizar o private, colocamos o protected apenas quando necessário.

solução!

Olá Thiago, tudo bem? Acho que entendi sua pergunta. No caso de utilizar o "extends" (herança), a utilização do modificador de acesso "protected" ou "private" vai depender da sua utilização. Se você pretende utilizar o atributo da classe-pai, utiliza-se o "protected". Se não for o caso, utiliza-se o "private". Mas, como convenção, tenta utilizar o padrão de deixar os atributos invisíveis para qualquer classe ("private") e os métodos getters e setters para acessar o mesmo, como no exemplo abaixo:

private String nome

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

O atributo poderá ser alterado somente através dos métodos setters, e recuperados somente através dos métodos getters.

Se VC utilizar private VC vai ter que criar get set pra manipular os atributos da super class, já protected todas as subclasse podem ver os atributos da sua super class.

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