Abstract:In object-oriented programming,the inheritance is one of the factors which induce semantic complexity.In this paper,the coexistence and relationship of inheritance,as a mechanism for sharing codes,and subtyping,which expresses specialization in functionality, are discussed.The concept of type, which states that types are behavioral specifications of objects,that is,the sets of named operations,is presented. Based on this concept, types, classes and subtyping relationship are described formally.