数据类型相关知识详解
1. 绑定规则
1.1 绑定属性限制
- 具有
NON_OVERRIDABLE属性的父绑定不能被重写,这是该属性的唯一作用。 - 通用绑定不会被重写,而是会扩展具有相同通用规范的任何继承通用绑定。
- 最终绑定既不会被继承也不会被重写。如果扩展类型及其父类型都有最终绑定,则会按照特定规则调用两个绑定指定的子例程。
1.2 抽象类型和延迟过程绑定
抽象类型具有 ABSTRACT 属性,可用于定义类型扩展的父类型,但由于派生类型说明符的限制,无法创建动态类型为抽象类型的对象,可将其视为类型扩展树中的占位符。延迟过程绑定可视为永远不会被调用但可能在类型扩展中被重写的绑定的占位符。
规则和限制
- 抽象类型必须是可扩展的。
- 延迟绑定(无论是声明的还是继承的)仅允许在抽象类型中使用。如果扩展了具有延迟绑定的抽象类型,且扩展类型不是抽象类型,则扩展类型必须用非延迟绑定重写延迟绑定。
- 非延迟绑定不能用延迟绑定重写。
1.3 继承和重写绑定示例
以下是一个关于过程类型绑定继承的示例:
module th_file_module
private
type, public, abstract :: th_file_type
integer :: lun = 0
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



