Imagem do artigo Conceitos básicos de Dart: Herança e polimorfismo

3.7. Conceitos básicos de Dart: Herança e polimorfismo

Página 25 | Ouça em áudio

Antes de mergulhar na criação de aplicativos usando Flutter, é importante ter uma compreensão sólida da linguagem de programação Dart, que é a espinha dorsal do Flutter. Dois conceitos fundamentais em Dart, e na programação orientada a objetos em geral, são herança e polimorfismo. Vamos explorar esses conceitos em detalhes.

Herança

A herança é um princípio fundamental da programação orientada a objetos que permite que uma classe herde as propriedades e os métodos de outra classe. A classe que está sendo herdada é frequentemente chamada de 'classe pai' ou 'superclasse', enquanto a classe que herda é chamada de 'classe filha' ou 'subclasse'.

Em Dart, a herança é realizada usando a palavra-chave 'extends'. Por exemplo, se tivermos uma classe 'Animal' com propriedades como 'nome' e 'idade' e métodos como 'comer' e 'dormir', podemos criar uma nova classe 'Cão' que herda de 'Animal' da seguinte maneira:

class Animal {
  String nome;
  int idade;

  comer() {
    print('$nome está comendo.');
  }

  dormir() {
    print('$nome está dormindo.');
  }
}

class Cao extends Animal {
  latir() {
    print('$nome está latindo.');
  }
}

Agora, a classe 'Cao' tem acesso a todas as propriedades e métodos da classe 'Animal', além de qualquer coisa que defina por si só. Isso é útil porque nos permite reutilizar o código e organizar nosso código de maneira lógica e hierárquica.

Polimorfismo

O polimorfismo é outro princípio fundamental da programação orientada a objetos que permite que uma classe tenha muitas formas. Isso pode significar que uma classe filha pode redefinir um método da classe pai, ou que um método pode processar diferentes tipos de objetos.

Em Dart, o polimorfismo é realizado usando a palavra-chave 'override'. Por exemplo, se quisermos que a classe 'Cao' tenha uma versão diferente do método 'comer' da classe 'Animal', podemos fazer isso da seguinte maneira:

class Cao extends Animal {
  @override
  comer() {
    print('$nome está comendo ração para cães.');
  }
}

Agora, quando chamamos o método 'comer' em um objeto da classe 'Cao', veremos a mensagem 'nome está comendo ração para cães' em vez de 'nome está comendo'.

O polimorfismo também permite que um método processe diferentes tipos de objetos. Por exemplo, podemos ter um método 'fazerAnimalComer' que aceita um objeto da classe 'Animal' e chama seu método 'comer'. Este método funcionará tanto para objetos da classe 'Animal' quanto para objetos de qualquer classe que herde de 'Animal', como a classe 'Cao'.

fazerAnimalComer(Animal animal) {
  animal.comer();
}

Em resumo, a herança e o polimorfismo são conceitos fundamentais em Dart que nos permitem reutilizar e organizar nosso código de maneira eficaz. Eles são fundamentais para a criação de aplicativos usando Flutter e são conceitos que você usará repetidamente ao criar seus próprios aplicativos.

Agora responda o exercício sobre o conteúdo:

Qual dos seguintes conceitos de programação orientada a objetos permite que uma classe herde as propriedades e os métodos de outra classe em Dart?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

Imagem do artigo Conceitos básicos de Dart: Tratamento de exceções

Próxima página do Ebook Gratuito:

26Conceitos básicos de Dart: Tratamento de exceções

3 minutos

Ganhe seu Certificado deste Curso Gratuitamente! ao baixar o aplicativo Cursa e ler o ebook por lá. Disponível na Google Play ou App Store!

Disponível no Google Play Disponível no App Store

+ de 6,5 milhões
de alunos

Certificado Gratuito e
Válido em todo o Brasil

48 mil exercícios
gratuitos

4,8/5 classificação
nas lojas de apps

Cursos gratuitos em
vídeo, áudio e texto