摘要派生类型

可扩展的派生类型可以是抽象的

type, abstract::base_type
end type

这样的派生类型可能永远不会被实例化,例如通过

type(base_type) t1
allocate(type(base_type) :: t2)

但是多态对象可能将此作为其声明的类型

class(base_type), allocatable::t1

要么

function f(t1)
  class(base_type) t1
end function

抽象类型可能包含组件和类型绑定过程

type, abstract::base_type
  integer i
contains
  procedure func
  procedure(func_iface), deferred::def_func
end type

过程 def_func 是一个带有接口 func_iface延迟类型绑定过程。这种延迟的类型绑定过程必须由每种扩展类型实现。