可扩展的派生类型可能是抽象的
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是带有interface的延迟类型绑定过程func_iface。这种延迟类型绑定过程必须由每种扩展类型实现。