SóProvas


ID
227182
Banca
VUNESP
Órgão
CEAGESP
Ano
2010
Provas
Disciplina
Engenharia de Software
Assuntos

Na programação orientada a objetos existem quatro tipos de polimorfismos possíveis de serem aplicados na estrutura de uma classe, a saber:

Alternativas
Comentários
  • Polimorfismo Paramétrico

    No polimorfismo paramétrico, um mesmo objeto pode ser utilizado uniformemente como parâmetro em diferentes contextos sem necessidade de alterações. Um método que exibe polimorfismo paramétrico (também chamada de método genérico) permite que o tipo do seu argumento seja determinado por um parâmetro de tipo implícito ou explícito, executando uma mesma operação, independente do tipo do argumento. O PHP não requer (ou suporta) a definição de tipo explícita na declaração de variáveis: o tipo de uma variável é determinado pelo * contexto em que a variável é utilizada. Isto significa que, se você atribuir um valor string para a variável $var , $var se torna uma string. * Se você então atribuir um valor inteiro para $var , ela se torna um inteiro. Por isso o PHP não adota este tipo de polimorfismo, pois não possui parâmetros genéricos.
    [editar] Polimorfismo por Inclusão

    No polimosfismo por inclusão um objeto pode ser visto como pertencendo a diferentes classes que não precisam ser disjuntas. O PHP adota esse tipo de polimorfismo, pois é uma linguagem orientada a objeto que permite recursos de herança.

    O polimorfismo por sobrecarga, no qual mais de um método tem o mesmo nome, mas assinaturas diferentes, não é suportado pelo PHP. (Ver exemplo contextualizado em anexo.)
    [editar] Polimorfismo por Coerção

    O PHP também suporta o polimorfismo por coerção, no qual a linguagem dispõe de uma operação semântica para converter um argumento para um tipo esperado por uma função, em uma situação que de outra forma resultaria em um erro de tipo.

    Fonte:

    http://pt.wikipedia.org/wiki/PHP#Polimorfismo_Param.C3.A9trico

  • https://pt.wikipedia.org/wiki/Polimorfismo#Tipos_de_polimorfismo

    Tipos de polimorfismo

    Existem quatro tipos de polimorfismo que a linguagem pode ter (atente para o fato de que nem toda linguagem orientada a objeto tem implementado todos os tipos de polimorfismo):

    Universal

    Inclusão - um ponteiro para classe mãe pode apontar para uma instância de uma classe filha (exemplo em Java: List lista = new LinkedList(); (tipo de polimorfismo mais básico que existe)

     

    Paramétrico - se restringe ao uso de templates (C++, por exemplo) e generics (C#/Java)

     

    Ad-Hoc

    Sobrecarga - duas funções/métodos com o mesmo nome mas assinaturas diferentes

     

    Coerção - conversão implícita de tipos sobre os parâmetros de uma função

     

     

     

    https://en.wikipedia.org/wiki/Polymorphism_(computer_science)

    Polymorphism (computer science)

    In programming languages and type theory, polymorphism (from Greek πολύς, polys, "many, much" and μορφή, morphē, "form, shape") is the provision of a singleinterface to entities of different types. A polymorphic type is one whose operations can also be applied to values of some other type, or types. There are several fundamentally different kinds of polymorphism:

    Ad hoc polymorphism: when a function denotes different and potentially heterogeneous implementations depending on a limited range of individually specified types and combinations. Ad hoc polymorphism is supported in many languages using function overloading.

    Parametric polymorphism: when code is written without mention of any specific type and thus can be used transparently with any number of new types. In theobject-oriented programming community, this is often known as generics or generic programming. In the functional programming community, this is often shortened to polymorphism.

    Subtyping (also called subtype polymorphism or inclusion polymorphism): when a name denotes instances of many different classes related by some common superclass. In the object-oriented programming community, this is often simply referred to as polymorphism.

     

     

  • Gabarito C

  • O stipo de polimorfismo:

    Inclusão - facilidade de adicionar novas operações às classes

    Paramétrico - uso de generics para personalizar tipos consonate demanda da classe

    Sobrecarga - overloading é um mesmo metodo poder desempenhar diferentes operações.

    Coerção. - overriding é sobrescrita do metodo herdado