SóProvas


ID
779137
Banca
CESPE / CEBRASPE
Órgão
TRE-RJ
Ano
2012
Provas
Disciplina
Engenharia de Software
Assuntos

Considerando conceitos e aplicações do paradigma de orientação
a objetos, julgue os próximos itens.

Polimorfismo consiste em focalizar nos aspectos essenciais inerentes a uma entidade e ignorar propriedades acidentais ou menos importantes. No desenvolvimento de sistemas, isso significa concentrar-se no que um objeto é e no que ele faz antes de se decidir como esse objeto será implementado.

Alternativas
Comentários
  • O conceito na qual a questão se refere, é sobre Abstração. Polimorfismo é o recurso da Orientação a Objetos na qual um objeto pode ter vários comportamentos, a implementação pode ser realizada através de sobreescrita (overhead) e interfaces.
  • Abstração
    consiste de focalizar nos aspectos essenciais inerentes a uma entidade e ignorar propriedades ``acidentais.'' Em termos de desenvolvimento de sistemas, isto significa concentrar-se no que um objeto é e faz antes de se decidir como ele será implementado. O uso de abstração preserva a liberdade para tomar decisões de desenvolvimento ou de implementação apenas quando há um melhor entendimento do problema a ser resolvido.

    Muitas linguagens de programação modernas suportam o conceito de abstração de dados; porém, o uso de abstração juntamente com polimorfismo e herança, como suportado em orientação a objetos, é um mecanismo muito mais poderoso.

    O uso apropriado de abstração permite que um mesmo modelo conceitual (orientação a objetos) seja utilizado para todas as fases de desenvolvimento de um sistema, desde sua análise até sua documentação.

    referência: http://www.dca.fee.unicamp.br/cursos/POOCPP/node6.html
  • Essa questão é extremamente simples, quem fala grego sabe que polimorfismo significa muitas formas de fazer, desta forma invalidando completamente o enunciado da questão.
    Ps. eu não falo grego :P

  • errado - polimorfismo consiste em uma classe ou metodo poder assumir varios comportamentos de acordo com a classe que on invoca. Exemplo de polimorfismo parametrico que tambem aborda herança, encapsulamento e exceções. 


    public interface Animal {
        public String som();

    }
     


    public class Felino implements Animal{
        
        private String nome;
        
            public String som() {
            // TODO Auto-generated method stub
            return "miauauau";
        }
            
            public void setNome(String nome) throws InvalidException { 
                if (nome.length() == 0){
                    throw new InvalidException();
                
                }else 
                this.nome = nome;
            }
            
            public String getNome() {
                return nome;
            }
     }

    import javax.print.attribute.standard.Severity;


    public class InvalidException extends Exception{
        Severity sev;
        int errorCode;
        
        public InvalidException() {
            // TODO Auto-generated constructor stub
            super("error message");
            sev = sev.ERROR;
            errorCode = 666;
        }

    }


    public class cao implements Animal{

        @Override
        public String som() {
            // TODO Auto-generated method stub
            return "auauaua";
        }

    }


    public class Felino1 extends Felino{
        
        private String nome;
        
        
        
        public Felino1(String n) {
            // TODO Auto-generated constructor stub
            super();
            this.nome = n;
            
        }
        
        
        @Override
        public void setNome(String nome) {
            // TODO Auto-generated method stub
            try {
                super.setNome(nome);
            } catch (InvalidException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        
        @Override
        public String getNome() {
            // TODO Auto-generated method stub
            return super.getNome();
        }
      }


    public class Cao1 extends cao{
        
        private String nome;
        
        public Cao1(String n) {
            // TODO Auto-generated constructor stub
            this.nome = n;
        }
        
        public void setNome(String nome) throws InvalidException {
            if (nome.length() == 0){
                throw new InvalidException();
            }else
            this.nome = nome;
        }
        
        public String getNome() {
            return nome;
        }

    }

    import java.util.ArrayList;
    import java.util.Collection;


    public class Parametrism {

        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Animal f1 = new Felino1("damnd");
            Animal f2 = new Felino1("belher");
            Animal c1 = new Cao1("fido");
            Animal c2 = new Cao1("tj");
            Collection an = new ArrayList();
            an.add(f1);
            an.add(f2);
            an.add(c1);
            an.add(c2);
            
             for (Animal a: an)
                System.out.println(a.som());
            

        }

    }

     

  • Gabarito Errado

    Polimorfismo é o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma identificação (assinatura) mas comportamentos distintos, especializados para cada classe derivada, usando para tanto uma referência a um objeto do tipo da superclasse.

    Vamos na fé !

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !