我正在研究oracle中的面向对象概念,并且在某些方面存在一些混淆 例如,我知道如何创建对象类型,但不知道什么意思不可实现?
create or replace type compar_item_t as object(
com varchar2(50),
chint varchar2(254),
not instantiable member function getChint
return varchar2,
member function print
return varchar2
) not instantiable not final;
不可实例化意味着我们无法实例化它?或者上一个术语意味着什么?我的意思是不可实例化而不是最终的; ?
答案 0 :(得分:2)
我认为如果您还不熟悉本文档可能会有所帮助:
http://docs.oracle.com/cd/B19306_01/server.102/b14220/objects.htm
Oracle对象技术是一个基于Oracle的抽象层 关系技术。
这意味着“这是我们的产品,因此我们在制定自己的术语时会这样做”;)
无论如何,甲骨文的意思是“实例化”(我不确定你会在大多数词典中找到这个词,并且可能被大多数法术检查者拒绝;))?来自同一个链接:
将方法声明为NOT INSTANTIABLE意味着类型不是 提供该方法的实现....
NOT INSTANTIABLE类型的子类型可以覆盖任何类型 超类型的非可实例化方法并提供具体的 实现。如果还有任何不可实例化的方法, 必须将子类型声明为NOT INSTANTIABLE ....
所以我猜“非实例化”类似于大多数其他OOP语言中的“抽象基类型”或“接口”。
... IMHO