.comment-link {margin-left:.6em;}

Monday, June 27, 2005

Polimorfismo em PL/SQL

Grosso modo, o polimorfismo serve para que não tenhamos que nos preocupar sobre o que estamos trabalhando, e abstrairmos para definir um código que seja compatível com objetos de vários tipos. No exemplo seguinte, a mensagem refletirá o datatype enviado na mensagem para a mesma chamada, ou seja, codificamos 3 funções com o mesmo nome e obtivemos comportamento diferente conforme o parâmetro enviado.

ops$marcio@ORA10G> create or replace package qual
2 as
3 function tipo( x in number ) return varchar2;
4 function tipo( x in varchar2 ) return varchar2;
5 function tipo( x in date ) return varchar2;
6 end;
7 /

Package created.

ops$marcio@ORA10G>
ops$marcio@ORA10G>
ops$marcio@ORA10G> create or replace package body qual
2 as
3 function tipo( x in number ) return varchar2
4 is
5 begin
6 return 'number';
7 end;
8
9 function tipo( x in varchar2 ) return varchar2
10 is
11 begin
12 return 'varchar2';
13 end;
14
15 function tipo( x in date ) return varchar2
16 is
17 begin
18 return 'date';
19 end;
20 end;
21 /

Package body created.

ops$marcio@ORA10G>
ops$marcio@ORA10G>
ops$marcio@ORA10G> declare
2 a number;
3 b varchar2(20);
4 c date;
5 begin
6 dbms_output.put_line( qual.tipo(a) );
7 dbms_output.put_line( qual.tipo(b) );
8 dbms_output.put_line( qual.tipo(c) );
9 end;
10 /
number
varchar2
date

PL/SQL procedure successfully completed.

Comments:
Isso não é polimorfismo é simplesmente sobrecarga...
 
Não é polimorfismo, concordo com a sobre carga.
 
Post a Comment



<< Home

This page is powered by Blogger. Isn't yours?