Resolving PL/SQL Functions With Inheritance
CREATE OR REPLACE TYPE super_t AS OBJECT
(n NUMBER
) NOT FINAL;
/
CREATE OR REPLACE TYPE sub_t UNDER super_t
(n2 NUMBER
) NOT FINAL;
/
CREATE OR REPLACE TYPE final_t UNDER sub_t
(n3 NUMBER
);
/
CREATE OR REPLACE PACKAGE p
IS
FUNCTION func(arg SUPER_T) RETURN NUMBER;
FUNCTION func(arg SUB_T) RETURN NUMBER;
END;
/
CREATE OR REPLACE PACKAGE BODY p
IS
FUNCTION Func
(arg SUPER_T)
RETURN NUMBER
IS
BEGIN
RETURN 1;
END;
FUNCTION Func
(arg SUB_T)
RETURN NUMBER
IS
BEGIN
RETURN 2;
END;
END;
/
DECLARE
v FINAL_T := Final_t(1,2,3);
BEGIN
dbms_output.Put_line(p.Func(v)); -- prints 2
END;
/
OUTPUT :-
0 comments:
Post a Comment