VB5 provides interface inheritance through the use of the Implements keyword. For example, CFullTimeEmployee can implement the IEmployee interface. This interface might include basic information such as name, social security number, and date of birth. Another class, CPartTimeEmployee can also implement the IEmployee interface. You can then write code against the IEmployee interface without regard to the type of employee. To supply additional functionality, you might create an IEmp2 interface. To test whether an object is of a certain type, use the TypeOf keyword at run time. The format is "TypeOf object Is class/interface". Here's how to define two classes:
Class CFullTimeEmployee:
Implements IEmployee
Implements IEmp2
Class CPartTimeEmployee
Implements IEmployee
Dim objMyFTE as New CFullTimeEmployee
Dim objMyPTE as New CPartTimeEmployee
Using TypeOf, you can query at run time which interfaces these objects support:
Query Return
TypeOf objMyFTE Is CFullTimeEmployee True
TypeOf objMyFTE Is IEmployee True
TypeOf objMyFTE Is IEmp2 True
TypeOf objMyFTE Is CPartTimeEmployee False
TypeOf objMyFTE Is Object True
TypeOf objMyFTE Is IUnknown True
TypeOf objMyPTE Is CPartTimeEmployee True
TypeOf objMyPTE Is IEmployee True
TypeOf objMyPTE Is IEmp2 False
TypeOf objMyPTE Is Object True
TypeOf objMyPTE Is IUnknown True
TypeOf objMyPTE Is CFullTimeEmployee False