摘要派生型別

可擴充套件的派生型別可以是抽象的

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延遲型別繫結過程。這種延遲的型別繫結過程必須由每種擴充套件型別實現。