In this paper, we propose that the messages should be defined independ
ently to the class definitions in an object-oriented program. The comp
atibility relation between two message types is also discussed. This k
ind of relationship is essential and useful for software reuses. A sof
tware designer can declare the compatibility relation between two mess
age types if messages are defined independently to the class definitio
ns. A message of one type can be converted to another type automatical
ly when necessary if a compatibility relation between the two message
types is specified. A new type system is proposed based on these new c
oncepts in this paper. This type system is more flexible than the trad
itional ones while keeping the safety of type checking.