Prévia do material em texto
1. “A herança também é, às vezes chamada de relacionamento do tipo ‘é um’. A razão é que uma subclasse é uma especialização de uma superclasse. A s classes que herdam são referidas como classes-filhas ou subclasses.”. (BARNES, D. J.; KOLLING, M. Programação orientada a objetos em Java. Editora Pearson Prentice Hall. São Paulo, 2004. p. 208.). A orientação a objetos contém diversas nomenclaturas que devem estar muito claras para os desenvolvedores. Neste sentido, analise os conceitos fundamentais de herança na orientação a objeto a seguir e associe-os com suas respectivas definições. (1) Ancestral. (2) Subtipo. (3) Superclasse. (4) Descendente. ( ) Toda classe que aparecer abaixo da superclasse. ( ) Classe que está na hierarquia acima da superclasse. ( ) Classes que herdam de outras classes. ( ) Classes que fornecem a herança. Agora, assinale a alternativa que apresenta a resposta correta. ● .3, 2, 1, 4. ● .4, 1, 3, 2. ● .1, 3, 4, 2. ● .4, 1, 2, 3. ● .2, 1, 3, 4. PULAR 4,1,2,3 Resposta correta. Superclasse, mãe ou tipo são as classes que fornecem a herança. Já as classes que herdam de outras classes podem ser chamadas de subclasse, filha ou subtipo. Ancestral é a classe que aparece na hierarquia de classes, em uma posição acima da classe mãe. Descendente significa toda classe que aparecer abaixo da classe mãe, em sua hierarquia. 2. “Então, basicamente, a herança é um processo pelo qual os objetos podem herdar as características de outros, de modo que se podem fazer objetos especializados, baseados em outros mais gerais. A herança é um dos mecanismos fundamentais da programação orientada a objetos. Por meio da herança, podem se definir classes a partir da declaração de outras classes. As classes que herdam incluem os métodos como as propriedades da classe a partir da qual estão definidos.”. (ZENZELUK, J. H.; RIBEIRO, S.Um estudo para a evolução do PHP com a linguagem Orientada a objetos. Revista Científica Semana Acadêmica, Fortaleza, v. 1, n. 3. v. 1, 2014). É possível compreender que quando utilizamos herança, significa utilizar de um mecanismo para construir uma classe com seus atributos e métodos. Neste sentido, qual a palavra-chave utilizada modelagem de uma classe herdada? ● . Private. ● . Public. ● . double. ● . Class. ● . Extends. Resposta correta. Na linguagem Java, e em algumas outras linguagens, quando se faz o uso da palavra-chave extends, geramos uma classe em que serão herdados todos os métodos e atributos da classe mãe. 3. “Chamadas de método em Java são polimórficas. A mesma chamada de método pode, em momentos diferentes, invocar diferentes métodos, dependendo do tipo dinâmico da variável utilizada para fazer esta chamada. Uma variável polimórfica é uma que pode armazenar objetos de diferentes tipos (cada variável objeto em Java é potencialmente polimórfica).” (BARNES, D. J.; KOLLING, M. Programação orientada a objetos em Java. Editora Pearson Prentice Hall. São Paulo, 2004. p. 264). O polimorfismo na orientação a objetos pode assumir diferentes comportamentos. Como se apresenta o polimorfismo na forma de sobrecarga? ● .Polimorfismo de sobrecarga permite que um atributo com nome diferente, possua comportamentos diferentes. ● .Polimorfismo de sobrecarga permite que um método com o mesmo nome, possua comportamentos iguais. ● .Polimorfismo de sobrecarga permite que um método com o mesmo nome, possua comportamentos diferentes. ● .Polimorfismo de sobrecarga permite que um atributo com o mesmo nome, possua comportamentos iguais. ● .Polimorfismo de sobrecarga permite que um método com nome diferente, possua comportamentos iguais. PULAR Resposta correta. É correto compreender que, nas notações de orientação a objeto, o polimorfismo de sobrecarga permite que um método com o mesmo nome, possuam comportamentos diferentes. Ou seja, tanto polimorfismo quanto herança são referências de reutilização de código, pois trabalham em conjunto. Existem dois tipos de polimorfismo que são conhecidos como sobrecarga e sobreposição. 4. “Em geral, você pode fazer distinção entre os dois principais propósitos do uso da herança: podemos utilizá-la para herdar o código (herança de código) e podemos utilizá-la para herdar o tipo (subtipagem). O primeiro aspecto é útil para reutilização de código, o segundo para polimorfismo e especialização. Quando herdamos de (‘estendemos’) classes concretas, realizamos as duas coisas: herdamos a implementação e o tipo”. (BARNES, D. J.; KOLLING, M. Programação orientada a objetos em Java. Editora Pearson Prentice Hall. São Paulo, 2004. p. 276) É possível compreender a utilização de herança como uma forma de programação de nível mais elevado de abstração. Neste sentido, o que são heranças múltiplas? ● .A classe que herda os atributos e métodos combinados das suas classes subtipo. ● .A classe que herda os atributos e métodos combinados das suas classes filho. ● .A classe que herda os atributos e métodos combinados das suas classes descendentes. ● .A classe que herda os atributos e métodos combinados das suas classes subclasse. ● .A classe que herda os atributos e métodos combinados das suas classes mãe. RESPONDER QUESTÃO Resposta correta. Segundo os fundamentos de orientação a objeto, este método é utilizado quando uma classe filha herde mais de uma classe mãe, ou seja, ela herda os atributos e métodos combinados de todas as suas classes mãe. 5. “Polimorfismo é um termo grego que significa muitas formas (poli: muitas, morphos: formas). Na programação é o mesmo que dizer que várias classes podem possuir a mesma estrutura e comportamentos diferentes. Ao utilizar herança não apenas podemos reutilizar métodos da classe pai, como também podemos sobrescrever os métodos da classe pai, fazendo assim com que algumas características sejam modificadas. Basicamente, por exemplo podem ser criados métodos com o mesmo nome, sendo que só é preciso ter a assinatura/conteúdo diferentes.”. (ZENZELUK, J. H.; RIBEIRO, S. Um estudo para a evolução do PHP com a linguagem Orientada a objetos. Revista Científica Semana Acadêmica, Fortaleza, v. 3, n. 1, 2014.). O polimorfismo é uma técnica largamente utilizada em orientação a objeto. Neste sentido, existem três formas de aplicar o Polimorfismo. Quais são? I. Sobrecarga. II. Exclusão. III. Sobreposição. IV. Redundância. V. Inclusão. É correto o que se afirma em: ● .II, IV e V. ● .I, III, IV e V. ● .I, II, III, IV e V. ● .II, III e IV. ● .I, III e V. PRÓXIMA QUESTÃO Resposta correta. Pelos fundamentos da orientação a objeto, as formas corretas de se aplicar o polimorfismo são a sobrecarga, a sobreposição e a inclusão, que acoplam os fundamentos de polimorfismo. 6. “Ao utilizar herança não apenas podemos reutilizar métodos da classe pai, como também podemos sobrescrever os métodos da classe pai, fazendo assim com que algumas características sejam modificadas. Basicamente, por exemplo podem ser criados métodos com o mesmo nome, sendo que só é preciso ter a assinatura/conteúdo diferentes. No paradigma de orientação a objetos se prega o conceito da "abstração". Para construir um sistema orientado a objetos, não devemos projetar o sistema como sendo uma grande pela monolítica.”. (ZENZELUK, J. H.; RIBEIRO, S. Um estudo para a evolução do PHP com a linguagem Orientada a objetos. Revista Científica Semana Acadêmica, Fortaleza, v. 3, n. 1, 2014.). Podemos compreender que a herança associa-se ao polimorfismo, que na orientação a objetos pode assumir diferentes comportamentos. Como se apresenta o polimorfismo na forma de sobreposição? ● .Polimorfismo de sobreposição significa que as classes filhas possuem o mesmo atributo da sua classe mãe, sendo que irá sobrepor o método da classe mãe. ● .Polimorfismo de sobreposição significa que as classes filhas possuem o mesmo método da sua classe mãe, sendo que irá sobrepor o método da classe mãe. ● .Polimorfismo de sobreposição significa que a classe mãe possui o mesmo método da sua classe filha, sendo que irá sobrepor o método da classe filha. ● .Polimorfismode sobreposição significa que a classe mãe possui o mesmo atributo da sua classe filha, sendo que irá sobrepor o método da classe filha. ● .Polimorfismo de sobreposição significa que as classes filhas possuem o mesmo atributo da sua classe mãe, sendo que irá sobrepor o atributo da classe mãe. PULAR Resposta correta: O polimorfismo de sobreposição compreende que as classes filhas irão possuir o mesmo método da sua classe mãe e irá sobrepor o método da classe mãe. Ou seja, o Polimorfismo de sobreposição acontece na herança quando a subclasse sobrepõe o método original. Então, o método se dá em tempo de execução e não mais em tempo de compilação. 7. “A palavra reservada class informa que estamos criando uma Classe. O papel da classe é reunir as características e comportamentos comuns dos objetos. Na programação utilizamos o mesmo conceito. A classe pode ter diversas funções que pesquisam em múltiplas tabelas, mas em comum dividem o mesmo propósito e pode acontecer também de trabalharem com as mesmas variáveis (ZENZELUK, J. H.; RIBEIRO, S. Um estudo para a evolução do PHP com a linguagem Orientada a objetos. Revista Científica Semana Acadêmica, Fortaleza, v. 3, n. 1, 2014.). No universo de orientação a objeto, existem diversos conceitos que são de fundamental importância. Neste sentido, o uso da anotação @Override não é obrigatório. Porém, se colocarmos o método com @Override, o que é necessário executar? ● .Esse método, necessariamente, precisa reescrever um atributo existente na classe descendente. ● .Esse método, necessariamente, precisa reescrever um atributo existente na classe mãe. ● .Esse método, necessariamente, precisa reescrever um método existente na subclasse. ● .Esse método, necessariamente, precisa reescrever um método existente na classe filha. ● .Esse método, necessariamente, precisa reescrever um método existente na classe mãe. Resposta correta. Apesar de não ser obrigatório, quando se aplica a notação @Override, esse método necessariamente precisa reescrever um método existente na classe mãe. RESPONDER QUESTÃO 8. “A linguagem Java de fato sustenta unicamente a herança simples no sentido da ‘habilidade de herdar’, que é a forma como se descreve herança. Isso significa que se tem acesso a todas as operações (métodos de Java); Em outras palavras, por meio da construção ‘estende’, não só se herda a interface como também a sua habilidade - o código quer faz com que a interface trabalhe”. (PAGE-JONES, M. Fundamentos do desenho orientado a objeto com UML. São Paulo: Makron Books, 2001. p. 55.). Nem sempre o uso dos princípios de orientação a objeto gera vantagens. Indique abaixo quais as desvantagens de se usar a herança em orientação a objeto? I. Quando utilizamos herança, enfraquecemos o conceito de associação. II. Quando utilizamos herança, enfraquecemos o conceito de encapsulamento. III. Quando utilizamos herança, geramos um fraco acoplamento. IV. Quando utilizamos herança, enfraquecemos o conceito de polimorfismo. V. Quando utilizamos herança, geramos um forte acoplamento. É correto o que se afirma em: ● .II e V. ● .II, III e IV. ● .I, IV e V. ● .II, IV e V. ● .I, III e V. Resposta correta. Na orientação a objeto, apesar de inúmeras vantagens, existem algumas desvantagens. Neste caso da utilização da herança, as desvantagens percebidas é que quando utilizamos herança, enfraquecemos o conceito de encapsulamento e geramos um forte acoplamento. 9. “A orientação a objetos é uma maneira de programar que trata de modelar os processos de programação de uma maneira próxima à realidade: tratando a cada componente de um programa como um objeto com suas características e funcionalidades. Também conhecida pelas iniciais POO , a Programação Orientada a Objetos torna-se progressivamente um modelo seguido pelos desenvolvedores de diversas linguagens”. (ZENZELUK, J. H.; RIBEIRO, S. Um estudo para a evolução do PHP com a linguagem Orientada a objetos. Revista Científica Semana Acadêmica, Fortaleza, v. 3, n. 1, 2014.). A orientação a objeto introduziu no universo do desenvolvimento de softwares diversos novos conceitos, entre eles o de herança. Neste sentido, quais as afirmativas abaixo são falsas ou verdadeiras sobre herança? I. ( ) A classe mãe herda da classe filha os métodos e atributos. II. ( ) Na herança são herdados os dados contidos nos atributos. III. ( ) Na hierarquia das classes, a classe ancestral aparece antes da classe mãe. IV. ( ) Raiz é denominada o topo da hierarquia das classes sem subclasse. V. ( ) O objetivo da herança é juntar tudo que for igual e isolar aquilo que é diferente. Agora, assinale a alternativa que apresenta a sequência correta. ● .F, V, V, V, V. ● .F, F, V, F, V. ● .F, F, V, V, V. ● .V, F, F, V, V. ● .F, V, V, V, F. RESPONDER QUESTÃO Resposta correta. É correto afirmar na orientação a objeto que quem herda é a classe filha, e não a classe mãe. Além disto, os dados não são herdados, sendo que a classe ancestral é a primeira da hierarquia, além disto, a raiz é o topo das classes. O objetivo da herança é aglutinar as funções. 10. “No paradigma de orientação a objetos se prega o conceito da "abstração". Para construir um sistema orientado a objetos, não devemos projetar o sistema como sendo uma grande peça monolítica; devemos separá-lo em partes, concentrando-nos nas peças mais importantes e ignorando os detalhes, para podermos construir peças bem-definidas que possam ser reaproveitadas mais tarde, formando uma estrutura hierárquica.”. (ZENZELUK, J. H.; RIBEIRO, S. Um estudo para a evolução do PHP com a linguagem Orientada a objetos. Revista Científica Semana Acadêmica, Fortaleza, v. 3, n. 1, 2014.). Podemos compreender a importância do conceito e aplicação do conceito de abstração na orientação a objeto, onde são criadas classes abstratas. Neste sentido, qual seria o oposto de uma classe abstrata? ● .Classe ancestral. ● .Classe descendente. ● .Classe concreta. ● .Classe mãe. ● .Classe filha. Resposta correta. A classe abstrata seria o contrário da classe concreta. Uma classe abstrata serve como modelo para uma classe concreta, sendo que as classes concretas são utilizadas para gerar um determinado objeto