Most BASIC programmers are familiar with User Defined Types (or UDTs). A UDT is just a collection of properties (or members) of varying types. For example, the following is a UDT with 2 members (in this case they're both of the same type):
TYPE TName
first AS STRING*35
last AS STRING*35
END TYPE
An EXTENDed type is bit more complicated, since an EXTENDed type can hold properties, methods, and events. The storage mechanism differs from that of a UDT, so even though this looks okay:
TYPE TName2 EXTENDS QOBJECT
first AS STRING*35
last AS STRING*35
END TYPE
DIM Name1 AS TName '-- From previous example
DIM Name2 AS TName2
Name1 = Name2
This is not allowed since Name2 is an EXTENDed type and so the assignment is not compatible. Chapter 10 goes through the many features of using EXTENDed types.