Um momento
Aula 35
Cursos / Aprenda TypeScript - Tutorial Básico Vindo do JavaScript
Como Acessar Atributos Definidos na Classe Base em uma Classe Derivada (protected)

Summary

Aula de TypeScript: Acessor Protected

Introdução

Nesta aula, abordaremos o acessor protected em TypeScript, utilizando uma classe de exemplo chamada Estudante, que herda de uma classe base chamada Indivíduo.

Estrutura da Aula

  1. Classe Estudante:

    • A classe Estudante herda da classe Indivíduo.
    • O método de cumprimento pode ser sobrescrito na classe Estudante, permitindo uma implementação personalizada.
  2. Método Cumprimentar:

    • É declarado como público (public), embora o padrão no TypeScript seja público.
    • Implementação do método:
      cumprimentar() {
          console.log(`Oi, sou um estudante, meu nome é ${this._nome}`);
      }
      
  3. Problema com Atributo Nome:

    • O atributo _nome é declarado como private na classe Indivíduo.
    • Propriedades private podem ser acessadas apenas dentro da classe onde são definidas.
    • Surge um erro ao tentar acessar _nome da classe Estudante.
  4. Solução: Alteração para Protected:

    • Alteramos o atributo de private para protected na classe Indivíduo.
    • protected permite que o atributo seja acessado a partir de classes derivadas, como a Estudante.
  5. Resultado Final:

    • O método de cumprimento agora consegue referenciar o atributo _nome, e a saída do terminal ao executar o código será:
      Oi, sou um estudante, meu nome é Pedro.
      

Recapitulando

  • O estudante redefine o método cumprimentar para adicionar um texto extra.
  • O atributo _nome deve ser protected para ser acessível na classe derivada.
  • Esta modificação permite a reutilização e extensão do código nas classes que herdam da classe base.

Conclusão

A utilização do modificador de acesso protected é essencial para permitir que atributos sejam acessados em subclasses. Esta aula mostrou como utilizar este recurso de forma eficiente. Até a próxima aula!

Video Transcript

Olá pessoal, de volta com mais uma aula de TypeScript. Nesta aula vamos aprender sobre o acessor Protected, protegido. Temos aqui a classe estudante, vamos começar só de um, vou focar só em um, não importa ambos estão herdando de indivíduo. Vamos focar aqui no estudante. Vamos supor que o estudante comprime de uma maneira diferente. Vamos supor que o estudante vai dizer, oi eu sou um estudante, meu nome é, não sei o que. Agora a função método de cumprimentar já está definindo no indivíduo, mas o estudante pode também definir seu próprio método cumprimentar, não precisa ter que obedecer a implementação da classe indivíduo que é a classe base. Então aqui na classe estudante você pode fazer o override, né? Para você poder definir sua própria função de cumprimentar. Então vamos lá, vamos definir como acesso public. Na verdade o acesso é por padrão public público no TypeScript, implícitamente, mas é sempre bom a gente explícitamente dizer o tipo de acesso de um método. Cumprimentar a mesma coisa da linha 6. Não vai retornar nada, então o polvoid vai dar o console log, então esse console log aqui, vou dizer por exemplo, sou, oi sou, eu sou um ou um estudante, tá? Meu nome é 10.undascorname. Tá, agora olha aqui o que aconteceu. Oi, eu sou um estudante, estou se referindo a 10.undascorname, agora o underscore nome é um atributo que foi declarado na classe indivíduo que é a base, né? Indivíduo é que declara o nome com propriedade privada, private. Agora o estudante por si só, se próprio não declarou o nome. Na verdade não precisa porque ele quer compartilhar o código, né? Coisa que é comum a todos os indivíduos que é o nome. O estudante tem um nome, o funcionário tem um nome, mas por que tá dando problema? Vamos ver aqui, propriedade nome é privada e somente acessível de dentro da classe indivíduo, esse é o problema. Com propriedade privada, só é acessar, só é permitir o acesso de dentro da classe indivíduo, como o estudante que na verdade é outra classe, né? Embora o indivíduo, embora que seja herdado, vai dar problema. Para poder corrigir isso é que vem aquele tipo de acesso chamado protected, protegido, né? Então aqui na classe base, linha 3, em vez de ser private, você põe protected. O que é que significa protected? É como se fosse privado, mas permite o acesso em classes derivadas, tá? Essa é a diferença, agora você vai poder acessar o nome diretamente, propriedade nome diretamente lá, tá? Certo? Agora a gente pode usar o cumprimentar no estudante e ele vai falar outra coisa. Vamos testar? Terminal, TSC, node. Oi, eu sou um estudante, é aquela coisa mais que o estudante adiciona quando cumprimento, meu nome é Pedro. Tá? Esse é o detalhe do tipo acessor protected, na propriedade aqui no attribute. Recapitulando, nós redeclaramos cumprimentar, o estudante tem a sua própria função de cumprimentar que é diferente do indivíduo. Adicionamos o texto a mais e também referenciamos a propriedade nome que na verdade é declarada na classe indivíduo. Como o nome era private, acessor privado, ele só deixava acessar o nome de dentro da classe indivíduo mas não pode acessar fora. Então como é que a gente resolve esse problema do clases que erra de indivíduo mas não pode acessar o atributo diretamente? Você muda de private para protected, de privado para protegido, aquele atributo. Tá? Por essa aula é só e até a próxima.
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: