SóProvas


ID
709345
Banca
FCC
Órgão
MPE-PE
Ano
2012
Provas
Disciplina
Programação
Assuntos

Sobre a programação orientada a objetos com Java, é correto afirmar:

Alternativas
Comentários
  • a) Correto. É o polimorfismo estático. É chamado assim pois o comportamento polimórfico é criado pelo compilador.
    Nessa categoria, encaixa-se a sobrecarga de métodos.

    b) É obrigatório escrever em toda classe um construtor vazio que não recebe parâmetros. Além desse construtor, pode-se criar outros construtores vazios.

    c) Em uma hierarquia de herança, a superclasse herda todos os métodos públicos, privados e protegidos das subclasses.

    d) Uma interface possui métodos com conteúdo implementado que não precisam ser reescritos nas classes que a implementam.

    e) No interior do método main de uma classe, mesmo os métodos públicos e estáticos de outra classe só podem ser acessados por meio de um objeto explicitamente instanciado dessa classe.

  • Correta alternativa "a"

    Justificativa:

    O tipo de polimorfismo de Sobrecarga permite a existência de vários métodos de mesmo nome, porém com assinaturas levemente diferentes, ou seja, variando no número e tipo de argumentos. Ficaria a cargo do compilador escolher de acordo com as listas de argumentos os procedimentos ou métodos a serem executados.

    Sobrecarga de Métodos é comumente usada nos construtores de uma classe Java.

    Polimorfismo significa "muitas formas", é o termo definido em linguagens orientadas a objeto, como por exemplo Java, C# e C++, que permite ao desenvolvedor usar o mesmo elemento de formas diferentes. Polimorfismo denota uma situação na qual um objeto pode se comportar de maneiras diferentes ao receber uma mensagem. No Polimorfismo temos dois tipos:

    • Polimorfismo Estático ou Sobrecarga
    • Polimorfismo Dinâmico ou Sobreposição

    O Polimorfismo Estático se dá quando temos a mesma operação implementada várias vezes na mesma classe. A escolha de qual operação será chamada depende da assinatura dos métodos sobrecarregados.

    O Polimorfismo Dinâmico acontece na herança, quando a subclasse sobrepõe o método original. Agora o método escolhido se dá em tempo de execução e não mais em tempo de compilação. A escolha de qual método será chamado depende do tipo do objeto que recebe a mensagem.



    Leia mais em: http://www.devmedia.com.br/uso-de-polimorfismo-em-java/26140

  • Rapaz essa questão me confundiu legal! Sou programador PHP e nesta liguagem ela não permite que dentro da própria classe seja permitido criar metodos com o mesmo nomel. O polimorfismo nesse caso é criado dentro da classe filha herdando da classe pai. Mas é assim mesmo.

    • a) Uma classe pode ter mais de um método com o mesmo nome, desde que receba parâmetros diferentes.
      Correto, isso recebe o nome de sobrecarga de método. Por curiosidade na linguagem C# existe a sobrecarga de operador além desse.

      b) É obrigatório escrever em toda classe um construtor vazio que não recebe parâmetros. Além desse construtor, pode-se criar outros construtores vazios.
      Errado, não é obrigatório escrever o construtor vazio. A única situação em que é obrigatório existir o construtor vazio é quando temos outros construtores com parâmetros e seja necessário a instanciação sem parâmetros. 

      c) Em uma hierarquia de herança, a superclasse herda todos os métodos públicos, privados e protegidos das subclasses.
      Errado, em uma hierarquia de herança são as subclasses que herdam os métodos da superclasse. As subclasses também herdam os atributos e métodos privados, porém não consegue acessá-los diretamente. Para acessar um membro privado na subclasse indiretamente, seria necessário que a superclasse expusesse um outro método visível que invocasse esse atributo ou método privado. (http://www.caelum.com.br/apostila-java-orientacao-objetos/heranca-reescrita-e-polimorfismo/#7-1-repetindo-codigo)

      d) Uma interface possui métodos com conteúdo implementado que não precisam ser reescritos nas classes que a implementam.
      Errado, interface pode conter uma série de métodos, mas nenhuma implementação

      e) No interior do método main de uma classe, mesmo os métodos públicos e estáticos de outra classe só podem ser acessados por meio de um objeto explicitamente instanciado dessa classe.
      Errado, métodos estáticos podem ser acessados sem instância da classe.

  • Pessoal,

    Ressalta-se que a letra D dessa questão já se encontra defasada.

    Errada para versões anteriores à versão 8. Antes dessa versão, a Interface obrigava que os métodos fossem reescritos nas classes que a implementavam

    Certa a partir da versão 8. Pois a partir dela já se permite, em Interfaces, outros métodos (DEFAULT) que antes se permitiam apenas métodos estáticos.