SlideShare uma empresa Scribd logo
1 de 22
INTRODUÇÃO À ORIENTAÇÃO
           A OBJETO
                  por Rodrigo Sieja Bertin

                              Índice
    ●   Objeto                  ●   Polimorfismo

    ●   Operações e métodos     ●   Interface

    ●   Abstração               ●   Vantagens

    ●   Classe                  ●   Exemplos em Java e C#

    ●   Encapsulamento

    ●   Construtor

1
    ●   Herança
Objeto
    ●   Promove o entendimento do mundo real

    ●   Todos os objetos são distinguíveis e possuem
        uma identidade própria

    ●   Objetos no mundo real tem 2 características:

        –   Estado (atributos) e comportamento (métodos)


2
                                                    Rodrigo Sieja Bertin
Exemplo – objeto Cachorro
    ●   Um cachorro possui os atributos “nome”, “cor”,
        “raça”, “faminto”, etc e os métodos “latir”,
        “morder”, “abanar cauda”, etc


                 Latir                         objeto Cachorro
                               Morder




              Buscar
              osso
                                                       nome
                         Abanar cauda   raça

3
                                                           Rodrigo Sieja Bertin
Exemplo – objeto Bicicleta
    ●   Uma bicicleta possui os atributos: marcha, cor,
        velocidade, etc... E os métodos: mudar marcha,
        brecar, acelerar, etc

    ●   Cada bicicleta contém os mesmos
        componentes

    ●   Sua bicicleta é uma instância da classe de
        objetos conhecida como Bicicleta

4
                                              Rodrigo Sieja Bertin
Persistência de um objeto
    ●   É o tempo que este permanece armazenado na
        memória

    ●   Um objeto é persistente quando os valores de
        seus atributos e as informações necessárias
        para a manutenção de suas conexões c/ outros
        objetos são armazenados em uma mídia

    ●   Objetos criados e destruídos sem que sejam
        salvos são chamados de não-persistentes
5
                                            Rodrigo Sieja Bertin
Operações e métodos
    ●   Operação é uma transformação, ou função,
        que pode ser aplicada a objetos de uma classe
        ou por esses objetos
        –   Emissão de NF → p/ fax, e-mail ou impressora?
    ●   Método é uma implementação de uma
        operação p/ uma classe específica
    ●   Um método possui uma assinatura constituída
        pelo nome de uma operação, o número, tipo e
        ordem de seus argumentos pelo valor de
        retorno
6
                                                      Rodrigo Sieja Bertin
Abstração
    ●   Ocorre quando nos focamos nos aspectos
        essenciais de uma entidade e ignoramos
        propriedades secundárias

    ●   Concentrar-se primeiro no que o objeto é e o
        que ele executa, para compreender o problema

    ●   Isola-se o objeto do ambiente e se representa
        nele apenas características relevantes

7
                                              Rodrigo Sieja Bertin
Classe – definição
    ●   Representa um conjunto de objetos com a
        mesma estrutura

    ●   Projeto do qual objetos individuais são criados

    ●   Classes devem representar uma abstração:
        –   Exemplo: o elevador fecha a sua porta e depois se
            move para outro andar



8
                                                       Rodrigo Sieja Bertin
Classe – instâncias
    ●   "Animal" é uma classe, um molde, já "cachorro"
        é uma instância de "Animal"

    ●   Carrega todas as características do molde

    ●   Independe das outras instâncias

    ●   Cada instância da classe tem valores
        diferentes p/ seus respectivos atributos

9
                                               Rodrigo Sieja Bertin
Classe abstrata
     ●   Classe a partir da qual não é possível realizar
         qualquer tipo de instância

     ●   São feitas p/ servir de modelo a classes
         derivadas (classes concretas), que
         sobrescreverão os métodos p/ realizar a
         implementação dos mesmos




10
                                                Rodrigo Sieja Bertin
Encapsulamento
     ●   Dados e operações são encapsulados em uma
         única entidade
     ●   A única forma de conhecer ou alterar seus
         atributos é por meio de seus métodos
     ●   Não há necessidade de conhecer o
         funcionamento interno do objeto
     ●   É possível modificar um objeto internamente,
         adicionando métodos, sem afetar os outros
         componentes

11
                                              Rodrigo Sieja Bertin
Construtor
     ●   É um método chamado depois que a instância
         de um objeto é criada
     ●   Deve ter o mesmo nome da classe
     ●   Não tem tipo de retorno
     ●   Toda classe tem pelo menos um construtor
     ●   Pode usar qualquer modificador de acesso
     ●   O construtor padrão não tem argumentos
     ●   Não pode ser herdado nem substituído

12
                                             Rodrigo Sieja Bertin
Herança
     ●   Diferentes objetos possuem algum grau de
         semelhança

     ●   As subclasses, como MountainBike, herdam as
         características da superclasse (Bicicleta)

     ●   Palavra-chave extends



13
                                             Rodrigo Sieja Bertin
Herança

       class MountainBike extends Bicicleta {

       /* Novos campos e métodos que definem
        * uma mountain bike */

       }




14
                                 Rodrigo Sieja Bertin
Herança simples

     ●   Determina que uma classe herdará
         características de apenas uma superclasse.




15
                                              Rodrigo Sieja Bertin
Herança múltipla
     ●   Quando uma classe herda características de
         duas ou mais superclasses

     ●   Faz-se a prefixação do nome do membro com
         o nome da classe base a que ele se refere
         –   Esse processo é chamado de qualificação




16
                                                       Rodrigo Sieja Bertin
Polimorfismo / método polimórfico
     ●   Método que se comporta de forma específica
         para cada uma das classes derivadas
     ●   Os mesmos atributos e objetos podem ser
         utilizados em objetos distintos, mas c/
         implementação lógica diferente
         –   Classe Cliente e Classe Funcionário
         –   Superclasse = Pessoa
         –   Método “Enviar e-mail” feito de forma diferente para
             cada classe derivada (Cliente, Funcionário)


17
                                                          Rodrigo Sieja Bertin
Interface
     ●   Os métodos formam a interface do objeto c/ o
         mundo exterior
         –   Botões do controle remoto são uma interface entre
             você e os fios elétricos dentro dele
     ●   Interface é um grupo de métodos c/ corpo vazio
         –   Uma outra classe implementará a interface:
                                         public class Leão implements Predador {

                                             public boolean persegueCaça(Caça p) {
                                                 /* Programação para perseguir a caça,
                                                 * especificamente para um leão */
                                             }
         public interface Predador {
             boolean persegueCaça(Caça       public void comeCaça(Caça p) {
                                                 /* Programação para comer a caça,
         p);                                     * especificamente para um leão */
             void comeCaça(Caça p);          }
18       }
                                         }                               Rodrigo Sieja Bertin
Interface
     ●   Os métodos formam a interface do objeto c/ o
         mundo exterior
         –   Botões do controle remoto são uma interface entre
             você e os fios elétricos dentro dele
     ●   Interface é um grupo de métodos c/ corpo vazio
         –   Uma outra classe implementará a interface:
                                         public class Leão implements Predador {

                                             public boolean persegueCaça(Caça p) {
                                                 /* Programação para perseguir a caça,
                                                 * especificamente para um leão */
                                             }
         public interface Predador {
             boolean persegueCaça(Caça       public void comeCaça(Caça p) {
                                                 /* Programação para comer a caça,
         p);                                     * especificamente para um leão */
             void comeCaça(Caça p);          }
19       }
                                         }                               Rodrigo Sieja Bertin
Vantagens
     ●   Única abordagem em todas as etapas
     ●   Maior nível de abstração
     ●   Componentes modularizados
     ●   Manutenção facilitada
     ●   Reaproveitamento de código
     ●   Desenvolvimento mais produtivo
     ●   Redução de custo de desenvolvimento


20
                                               Rodrigo Sieja Bertin
Exemplo prático – classe Bicicleta
                                        (Java)


         class Bicicleta {                                     // Classe

             /* Atributos */
             int cadencia = 0;
             int velocidade = 0;
             int marcha = 1;

             void mudaCadencia(int novoValor) {
                  cadencia = novoValor;
             }
             void mudaMarcha(int novoValor) {
                  marcha = novoValor;
             }
             void aumentaVelocidade(int incremento) {
                  velocidade = velocidade + incremento;
             }
             void breca(int decremento) {
                  velocidade = velocidade - decremento;
             }
             void exibeEstados() {
                  System.out.println("Cadência: " + cadencia   // Exibe na tela
                  + "nVelocidade: " + velocidade
                  + "nMarcha: " + marcha);
             }
         }




21
                                                                            Rodrigo Sieja Bertin
Exemplo prático – classe Animal
                                       (C#)




           public class Animal // Classe
           {
                protected string especie; // Atributo

               public Animal (string str_especie)
               {
                    str_especie = especie;
               }

               static void Main(string[] args)    // Execução
               {
                    /* Instâncias */
                    cachorro = new Animal("Canis lupus familiaris");
                    gato = new Animal("Felis catus");
                    lobo = new Animal("Canis lupus");
               }

           }
       }




22
                                                                       Rodrigo Sieja Bertin

Mais conteúdo relacionado

Mais procurados

POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosPOO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosLudimila Monjardim Casagrande
 
Introdução a programação Orientada a Objeto
Introdução a programação Orientada a ObjetoIntrodução a programação Orientada a Objeto
Introdução a programação Orientada a ObjetoMarconi Rodrigues
 
[Lógica] Orientação a Objetos descomplicada
[Lógica] Orientação a Objetos descomplicada[Lógica] Orientação a Objetos descomplicada
[Lógica] Orientação a Objetos descomplicadaEduardo Ricoldi
 
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem IIIJuliano Weber
 
02 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.502 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.5César Augusto Pessôa
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/Rodrigo Vieira
 
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a ObjetosPOO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a ObjetosLudimila Monjardim Casagrande
 
Orientação a Objetos - Conceitos
Orientação a Objetos - ConceitosOrientação a Objetos - Conceitos
Orientação a Objetos - ConceitosMayron Cachina
 
Poo slides01
Poo slides01Poo slides01
Poo slides01jmtofoli
 
Java orientação a objetos (introdução)
Java   orientação a objetos (introdução)Java   orientação a objetos (introdução)
Java orientação a objetos (introdução)Armando Daniel
 
Java Básico - Módulo 07: Introdução à programação orientada à objetos
Java Básico - Módulo 07: Introdução à programação orientada à objetos Java Básico - Módulo 07: Introdução à programação orientada à objetos
Java Básico - Módulo 07: Introdução à programação orientada à objetos Professor Samuel Ribeiro
 
Fundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetosFundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetosEvandro Agnes
 

Mais procurados (20)

POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosPOO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a Objetos
 
Java 02
Java 02Java 02
Java 02
 
Introdução a programação Orientada a Objeto
Introdução a programação Orientada a ObjetoIntrodução a programação Orientada a Objeto
Introdução a programação Orientada a Objeto
 
Programação OO - Java
Programação OO - JavaProgramação OO - Java
Programação OO - Java
 
Orientação à objetos conceituação
Orientação à objetos   conceituaçãoOrientação à objetos   conceituação
Orientação à objetos conceituação
 
[Lógica] Orientação a Objetos descomplicada
[Lógica] Orientação a Objetos descomplicada[Lógica] Orientação a Objetos descomplicada
[Lógica] Orientação a Objetos descomplicada
 
v
vv
v
 
Virada Tecnológica 2017
Virada Tecnológica 2017Virada Tecnológica 2017
Virada Tecnológica 2017
 
OOP Java
OOP JavaOOP Java
OOP Java
 
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem III
 
02 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.502 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.5
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/
 
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a ObjetosPOO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
 
Orientação a Objetos - Conceitos
Orientação a Objetos - ConceitosOrientação a Objetos - Conceitos
Orientação a Objetos - Conceitos
 
Poo slides01
Poo slides01Poo slides01
Poo slides01
 
Java orientação a objetos (introdução)
Java   orientação a objetos (introdução)Java   orientação a objetos (introdução)
Java orientação a objetos (introdução)
 
Java 00 Poo
Java 00 PooJava 00 Poo
Java 00 Poo
 
Java Básico - Módulo 07: Introdução à programação orientada à objetos
Java Básico - Módulo 07: Introdução à programação orientada à objetos Java Básico - Módulo 07: Introdução à programação orientada à objetos
Java Básico - Módulo 07: Introdução à programação orientada à objetos
 
Fundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetosFundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetos
 
Poo
PooPoo
Poo
 

Semelhante a Introdução à Orientação a Objeto

Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosLeonardo Melo Santos
 
Aula3-POO-ConceitosBasicos.pdf
Aula3-POO-ConceitosBasicos.pdfAula3-POO-ConceitosBasicos.pdf
Aula3-POO-ConceitosBasicos.pdfssuser6e99cd
 
(Re)pensando a OOP - TDC 2012
(Re)pensando a OOP - TDC 2012(Re)pensando a OOP - TDC 2012
(Re)pensando a OOP - TDC 2012Luís Cobucci
 
Programação Orientada a Objetos parte 1
Programação Orientada a Objetos parte 1Programação Orientada a Objetos parte 1
Programação Orientada a Objetos parte 1Elaine Cecília Gatto
 

Semelhante a Introdução à Orientação a Objeto (9)

3 orientacao-objetos
3 orientacao-objetos3 orientacao-objetos
3 orientacao-objetos
 
POO - aula 2.pptx
POO - aula 2.pptxPOO - aula 2.pptx
POO - aula 2.pptx
 
Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetos
 
Aula3-POO-ConceitosBasicos.pdf
Aula3-POO-ConceitosBasicos.pdfAula3-POO-ConceitosBasicos.pdf
Aula3-POO-ConceitosBasicos.pdf
 
Aula 04.pdf
Aula 04.pdfAula 04.pdf
Aula 04.pdf
 
5 oo-avançado
5 oo-avançado5 oo-avançado
5 oo-avançado
 
10 - JS OOP.pptx
10 - JS OOP.pptx10 - JS OOP.pptx
10 - JS OOP.pptx
 
(Re)pensando a OOP - TDC 2012
(Re)pensando a OOP - TDC 2012(Re)pensando a OOP - TDC 2012
(Re)pensando a OOP - TDC 2012
 
Programação Orientada a Objetos parte 1
Programação Orientada a Objetos parte 1Programação Orientada a Objetos parte 1
Programação Orientada a Objetos parte 1
 

Introdução à Orientação a Objeto

  • 1. INTRODUÇÃO À ORIENTAÇÃO A OBJETO por Rodrigo Sieja Bertin Índice ● Objeto ● Polimorfismo ● Operações e métodos ● Interface ● Abstração ● Vantagens ● Classe ● Exemplos em Java e C# ● Encapsulamento ● Construtor 1 ● Herança
  • 2. Objeto ● Promove o entendimento do mundo real ● Todos os objetos são distinguíveis e possuem uma identidade própria ● Objetos no mundo real tem 2 características: – Estado (atributos) e comportamento (métodos) 2 Rodrigo Sieja Bertin
  • 3. Exemplo – objeto Cachorro ● Um cachorro possui os atributos “nome”, “cor”, “raça”, “faminto”, etc e os métodos “latir”, “morder”, “abanar cauda”, etc Latir objeto Cachorro Morder Buscar osso nome Abanar cauda raça 3 Rodrigo Sieja Bertin
  • 4. Exemplo – objeto Bicicleta ● Uma bicicleta possui os atributos: marcha, cor, velocidade, etc... E os métodos: mudar marcha, brecar, acelerar, etc ● Cada bicicleta contém os mesmos componentes ● Sua bicicleta é uma instância da classe de objetos conhecida como Bicicleta 4 Rodrigo Sieja Bertin
  • 5. Persistência de um objeto ● É o tempo que este permanece armazenado na memória ● Um objeto é persistente quando os valores de seus atributos e as informações necessárias para a manutenção de suas conexões c/ outros objetos são armazenados em uma mídia ● Objetos criados e destruídos sem que sejam salvos são chamados de não-persistentes 5 Rodrigo Sieja Bertin
  • 6. Operações e métodos ● Operação é uma transformação, ou função, que pode ser aplicada a objetos de uma classe ou por esses objetos – Emissão de NF → p/ fax, e-mail ou impressora? ● Método é uma implementação de uma operação p/ uma classe específica ● Um método possui uma assinatura constituída pelo nome de uma operação, o número, tipo e ordem de seus argumentos pelo valor de retorno 6 Rodrigo Sieja Bertin
  • 7. Abstração ● Ocorre quando nos focamos nos aspectos essenciais de uma entidade e ignoramos propriedades secundárias ● Concentrar-se primeiro no que o objeto é e o que ele executa, para compreender o problema ● Isola-se o objeto do ambiente e se representa nele apenas características relevantes 7 Rodrigo Sieja Bertin
  • 8. Classe – definição ● Representa um conjunto de objetos com a mesma estrutura ● Projeto do qual objetos individuais são criados ● Classes devem representar uma abstração: – Exemplo: o elevador fecha a sua porta e depois se move para outro andar 8 Rodrigo Sieja Bertin
  • 9. Classe – instâncias ● "Animal" é uma classe, um molde, já "cachorro" é uma instância de "Animal" ● Carrega todas as características do molde ● Independe das outras instâncias ● Cada instância da classe tem valores diferentes p/ seus respectivos atributos 9 Rodrigo Sieja Bertin
  • 10. Classe abstrata ● Classe a partir da qual não é possível realizar qualquer tipo de instância ● São feitas p/ servir de modelo a classes derivadas (classes concretas), que sobrescreverão os métodos p/ realizar a implementação dos mesmos 10 Rodrigo Sieja Bertin
  • 11. Encapsulamento ● Dados e operações são encapsulados em uma única entidade ● A única forma de conhecer ou alterar seus atributos é por meio de seus métodos ● Não há necessidade de conhecer o funcionamento interno do objeto ● É possível modificar um objeto internamente, adicionando métodos, sem afetar os outros componentes 11 Rodrigo Sieja Bertin
  • 12. Construtor ● É um método chamado depois que a instância de um objeto é criada ● Deve ter o mesmo nome da classe ● Não tem tipo de retorno ● Toda classe tem pelo menos um construtor ● Pode usar qualquer modificador de acesso ● O construtor padrão não tem argumentos ● Não pode ser herdado nem substituído 12 Rodrigo Sieja Bertin
  • 13. Herança ● Diferentes objetos possuem algum grau de semelhança ● As subclasses, como MountainBike, herdam as características da superclasse (Bicicleta) ● Palavra-chave extends 13 Rodrigo Sieja Bertin
  • 14. Herança class MountainBike extends Bicicleta { /* Novos campos e métodos que definem * uma mountain bike */ } 14 Rodrigo Sieja Bertin
  • 15. Herança simples ● Determina que uma classe herdará características de apenas uma superclasse. 15 Rodrigo Sieja Bertin
  • 16. Herança múltipla ● Quando uma classe herda características de duas ou mais superclasses ● Faz-se a prefixação do nome do membro com o nome da classe base a que ele se refere – Esse processo é chamado de qualificação 16 Rodrigo Sieja Bertin
  • 17. Polimorfismo / método polimórfico ● Método que se comporta de forma específica para cada uma das classes derivadas ● Os mesmos atributos e objetos podem ser utilizados em objetos distintos, mas c/ implementação lógica diferente – Classe Cliente e Classe Funcionário – Superclasse = Pessoa – Método “Enviar e-mail” feito de forma diferente para cada classe derivada (Cliente, Funcionário) 17 Rodrigo Sieja Bertin
  • 18. Interface ● Os métodos formam a interface do objeto c/ o mundo exterior – Botões do controle remoto são uma interface entre você e os fios elétricos dentro dele ● Interface é um grupo de métodos c/ corpo vazio – Uma outra classe implementará a interface: public class Leão implements Predador { public boolean persegueCaça(Caça p) { /* Programação para perseguir a caça, * especificamente para um leão */ } public interface Predador { boolean persegueCaça(Caça public void comeCaça(Caça p) { /* Programação para comer a caça, p); * especificamente para um leão */ void comeCaça(Caça p); } 18 } } Rodrigo Sieja Bertin
  • 19. Interface ● Os métodos formam a interface do objeto c/ o mundo exterior – Botões do controle remoto são uma interface entre você e os fios elétricos dentro dele ● Interface é um grupo de métodos c/ corpo vazio – Uma outra classe implementará a interface: public class Leão implements Predador { public boolean persegueCaça(Caça p) { /* Programação para perseguir a caça, * especificamente para um leão */ } public interface Predador { boolean persegueCaça(Caça public void comeCaça(Caça p) { /* Programação para comer a caça, p); * especificamente para um leão */ void comeCaça(Caça p); } 19 } } Rodrigo Sieja Bertin
  • 20. Vantagens ● Única abordagem em todas as etapas ● Maior nível de abstração ● Componentes modularizados ● Manutenção facilitada ● Reaproveitamento de código ● Desenvolvimento mais produtivo ● Redução de custo de desenvolvimento 20 Rodrigo Sieja Bertin
  • 21. Exemplo prático – classe Bicicleta (Java) class Bicicleta { // Classe /* Atributos */ int cadencia = 0; int velocidade = 0; int marcha = 1; void mudaCadencia(int novoValor) { cadencia = novoValor; } void mudaMarcha(int novoValor) { marcha = novoValor; } void aumentaVelocidade(int incremento) { velocidade = velocidade + incremento; } void breca(int decremento) { velocidade = velocidade - decremento; } void exibeEstados() { System.out.println("Cadência: " + cadencia // Exibe na tela + "nVelocidade: " + velocidade + "nMarcha: " + marcha); } } 21 Rodrigo Sieja Bertin
  • 22. Exemplo prático – classe Animal (C#) public class Animal // Classe { protected string especie; // Atributo public Animal (string str_especie) { str_especie = especie; } static void Main(string[] args) // Execução { /* Instâncias */ cachorro = new Animal("Canis lupus familiaris"); gato = new Animal("Felis catus"); lobo = new Animal("Canis lupus"); } } } 22 Rodrigo Sieja Bertin