0

我正在研究 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;                 

不可实例化意味着我们不能实例化它吗?或者最后一个术语是什么意思?我的意思是不可实例化不是最终的;?

4

1 回答 1

2

如果您还不熟悉此文档,我认为此文档可能会有所帮助:

http://docs.oracle.com/cd/B19306_01/server.102/b14220/objects.htm

Oracle 对象技术是建立在 Oracle 关系技术之上的抽象层。

这意味着“它是我们的产品,所以我们正在制定我们自己的术语”;)

无论如何,Oracle 所说的“可实例化”是什么意思(我不确定你会在大多数字典中找到这个词,并且可能会被大多数拼写检查器拒绝;))?从同一个链接:

将方法声明为 NOT INSTANTIABLE 意味着该类型没有为该方法提供实现......

NOT INSTANTIABLE 类型的子类型可以覆盖超类型的任何不可实例化方法并提供具体实现。如果还有任何不可实例化的方法,则子类型也必须声明为 NOT INSTANTIABLE....

所以我猜“不可实例化”类似于大多数其他 OOP 语言中的“抽象基类型”或“接口”。

恕我直言...

于 2012-06-05T06:50:24.620 回答