Boa Victorwss,
Agora por Paul R.Reed.JR.
O Polimorfismo proporciona caractéristicas de extensibilidade poderosas para o aplicativo permitindo que futuras classes desconhecidas implementem uma interface previsível e bem concebida sem afetar a maneira como as outras classes tratam com aquela interface. :arrow: Outra pista
[color=blue]Outras questões:
[/color]
ANÁLISE EM PROGRAMAS ORIENTADOS A OBJETOS
:arrow:[color=blue]Fonte da Matéria[/color]
Muitos dos trabalhos encontrados, na área de análise estática de programas orientados a objetos, destinam-se a análise da hierarquia das classes. A necessidade da análise da hierarquia das classes vem do fato das classes em um programa orientado a objetos representarem os novos tipos, definidos pelo programador. Este tipo de análise pode auxiliar no desenvolvimento de softwares orientados a objetos [6].
Outra característica da programação orientada a objetos é o polimorfismo. Existem vários tipos de polimorfismo, por exemplo a redefinição de métodos. Na redefinição de métodos um método redefine o método herdado. O método redefinido possui o mesmo nome, valor de retorno e argumentos do método herdado, ou seja, possui a mesma assinatura [3].
Outro tipo de polimorfismo é a sobrecarga. O polimorfismo tipo sobrecarga permite que existam vários métodos com o mesmo nome, porém com assinaturas levemente diferentes, ou seja, com o número de argumentos diferentes, com os tipos dos argumentos diferentes ou com o valor de retorno diferente [3].
A detecção, estatica, do polimorfismo, ou seja, a análise dos diferentes fluxos de execução de um mesmo método, muitas vezes torna-se inviável pela alta complexidade desta tarefa. Devido a este fato, alguns trabalhos não tratam da análise do polimorfismo. Este é o caso do algoritmo básico proposto por Agesen [1, 2].
Esta dificuldade deve-se ao [color=blue]fato do polimorfismo ser uma característica dinâmica da linguagem[/color]. Quando temos uma hierarquia polimórfica, ou seja, uma descendência de classes onde alguma classe filha redefine a implementação de algum método herdado, isto pode implicar diferentes chamadas de métodos. Esta característica implica diferentes comunicações, o qual é o objeto de análise deste modelo.
Então o tratamento da análise de polimorfismo a nível estático gera muitas informações a serem estudadas, o que muitas vezes torna-se inviável pela complexidade alcanada nesta tarefa. Um dos trabalhos que tenta analisar todas as alternativas geradas pelo polimorfismo é o algoritmo do produto catesiano descrito por Agesen, o qual trata da análise de tipos da linguagem orientada a objetos Self [2].