oracle面向对象编程的多态性
来源:互联网 发布:闪电邮mac版 编辑:程序博客网 时间:2024/05/22 12:20
--如果使用子类型初始化,则调用子类型函数
SQL> create or replace type pt is object
2 (
3 name varchar2(20),
4 sex varchar2(2),
5 age number,
6 member procedure p_Set_Print,
7 member function f_get_info Return varchar2
8 ) not final
9 /
Type created
SQL> create or replace type body pt is
2 member procedure p_Set_Print
3 is
4 begin
5 dbms_output.put_line('pt_P_Set_Print');
6 end;
7 member function f_get_info Return varchar2
8 is
9 begin
10 return 'pt 姓名:'||self.name||' 性别:'||self.sex||' 年龄:'||self.age;
11 end;
12 end;
13 /
Type body created
SQL> create or replace type st under pt
2 (
3 overriding member procedure p_Set_Print,
4 overriding member function f_get_info Return varchar2
5 )
6 /
Type created
SQL> create or replace type body st is
2 overriding member procedure p_Set_Print
3 is
4 begin
5 dbms_output.put_line('st_P_Set_Print');
6 end;
7 overriding member function f_get_info Return varchar2
8 is
9 begin
10 return 'st 姓名:'||self.name||' 性别:'||self.sex||' 年龄:'||self.age;
11 end;
12 end;
13 /
Type body created
SQL> set serverout on
SQL>
SQL> declare
2 v pt:=pt('张三','女','20');
3 begin
4 v.p_Set_Print;
5 dbms_output.put_line(v.f_Get_info);
6 end;
7 /
pt_P_Set_Print
pt 姓名:张三 性别:女 年龄:20
PL/SQL procedure successfully completed
SQL>
SQL> declare
2 v st:=st('张三','女','20');
3 begin
4 v.p_Set_Print;
5 dbms_output.put_line(v.f_Get_info);
6 end;
7 /
st_P_Set_Print
st 姓名:张三 性别:女 年龄:20
PL/SQL procedure successfully completed
SQL>
SQL> declare
2 v pt:=st('张三','女','20');
3 begin
4 v.p_Set_Print;
5 dbms_output.put_line(v.f_Get_info);
6 end;
7 /
st_P_Set_Print
st 姓名:张三 性别:女 年龄:20
PL/SQL procedure successfully completed
SQL>
SQL> declare
2 v st:=pt('张三','女','20');
3 begin
4 v.p_Set_Print;
5 dbms_output.put_line(v.f_Get_info);
6 end;
7 /
declare
v st:=pt('张三','女','20');
begin
v.p_Set_Print;
dbms_output.put_line(v.f_Get_info);
end;
ORA-06550: 第 2 行, 第 9 列:
PLS-00382: 表达式类型错误
ORA-06550: 第 2 行, 第 5 列:
PL/SQL: Item ignored
ORA-06550: 第 4 行, 第 3 列:
PLS-00320: 此表达式的类型声明不完整或格式不正确
ORA-06550: 第 4 行, 第 3 列:
PL/SQL: Statement ignored
ORA-06550: 第 5 行, 第 24 列:
PLS-00320: 此表达式的类型声明不完整或格式不正确
ORA-06550: 第 5 行, 第 3 列:
PL/SQL: Statement ignored
SQL>
SQL> create or replace type pt is object
2 (
3 name varchar2(20),
4 sex varchar2(2),
5 age number,
6 member procedure p_Set_Print,
7 member function f_get_info Return varchar2
8 ) not final
9 /
Type created
SQL> create or replace type body pt is
2 member procedure p_Set_Print
3 is
4 begin
5 dbms_output.put_line('pt_P_Set_Print');
6 end;
7 member function f_get_info Return varchar2
8 is
9 begin
10 return 'pt 姓名:'||self.name||' 性别:'||self.sex||' 年龄:'||self.age;
11 end;
12 end;
13 /
Type body created
SQL> create or replace type st under pt
2 (
3 overriding member procedure p_Set_Print,
4 overriding member function f_get_info Return varchar2
5 )
6 /
Type created
SQL> create or replace type body st is
2 overriding member procedure p_Set_Print
3 is
4 begin
5 dbms_output.put_line('st_P_Set_Print');
6 end;
7 overriding member function f_get_info Return varchar2
8 is
9 begin
10 return 'st 姓名:'||self.name||' 性别:'||self.sex||' 年龄:'||self.age;
11 end;
12 end;
13 /
Type body created
SQL> set serverout on
SQL>
SQL> declare
2 v pt:=pt('张三','女','20');
3 begin
4 v.p_Set_Print;
5 dbms_output.put_line(v.f_Get_info);
6 end;
7 /
pt_P_Set_Print
pt 姓名:张三 性别:女 年龄:20
PL/SQL procedure successfully completed
SQL>
SQL> declare
2 v st:=st('张三','女','20');
3 begin
4 v.p_Set_Print;
5 dbms_output.put_line(v.f_Get_info);
6 end;
7 /
st_P_Set_Print
st 姓名:张三 性别:女 年龄:20
PL/SQL procedure successfully completed
SQL>
SQL> declare
2 v pt:=st('张三','女','20');
3 begin
4 v.p_Set_Print;
5 dbms_output.put_line(v.f_Get_info);
6 end;
7 /
st_P_Set_Print
st 姓名:张三 性别:女 年龄:20
PL/SQL procedure successfully completed
SQL>
SQL> declare
2 v st:=pt('张三','女','20');
3 begin
4 v.p_Set_Print;
5 dbms_output.put_line(v.f_Get_info);
6 end;
7 /
declare
v st:=pt('张三','女','20');
begin
v.p_Set_Print;
dbms_output.put_line(v.f_Get_info);
end;
ORA-06550: 第 2 行, 第 9 列:
PLS-00382: 表达式类型错误
ORA-06550: 第 2 行, 第 5 列:
PL/SQL: Item ignored
ORA-06550: 第 4 行, 第 3 列:
PLS-00320: 此表达式的类型声明不完整或格式不正确
ORA-06550: 第 4 行, 第 3 列:
PL/SQL: Statement ignored
ORA-06550: 第 5 行, 第 24 列:
PLS-00320: 此表达式的类型声明不完整或格式不正确
ORA-06550: 第 5 行, 第 3 列:
PL/SQL: Statement ignored
SQL>
0 0
- oracle面向对象编程的多态性
- 面向对象编程,多态性
- 面向对象编程---多态性
- 面向对象的多态性
- 面向对象的多态性
- 面向对象--对象的多态性
- Java面向对象编程——多态性的实现
- java 面向对象的多态性
- JAVA面向对象的多态性
- 理解C++面向对象编程[多态性部分]
- php面向对象编程--多态性之接口
- Java面向对象高级--对象的多态性
- Java面向对象--对象的多态性
- C语言面向对象的实现---多态性
- 面向对象语言的多态性问题
- 黑马程序员---面向对象的多态性
- 面向对象的多态性(1)
- 面向对象的多态性(2)
- 单例在ObjectiveC中的正确打开方式
- Tomcat环境配置
- ZeroMQ 的java 插件
- 蓝桥杯--十六进制转十进制&十进制转十六进制&十六进制转八进制
- scala 对比java 贴
- oracle面向对象编程的多态性
- NSNumber各类型包装转换
- 提示框逐渐消失、渐隐视图--iOS开发
- 特殊的回文数
- Java编程良好习惯和性能优化
- 特殊的数字
- Myeclipse+Tomcat运行网站
- Android环境搭建
- 杨辉三角