This is a OOP with Microsoft AJAX Library exercise from Chapter 5 of Microsoft AJAX Library Essentials: JavaScript in ASP.NET AJAX 1.0 Explained.
An interface is a contract that specifies a list of methods that need to be implemented by the classes that adhere to it. However, with JavaScript this contract is not checked when an object is registered (as it is in C#, for example), and not even when the object is created, so we must be extra careful when using interfaces with JavaScript and the Microsoft AJAX Library. For example, an interface method could contain code that is inherited if the method is not overridden in the class that implements the interface. This is obviously not a desirable case, as it breaks the rules of interface-based programming.
Interface registration is very similar to class registration, except that it's done using
the registerInterface() method of Type. The interface name is saved internally
inside the __registeredTypes field of the window object offering the means to avoid
registering two interface or types with the same name, or implementing from a base
type that is not an interface.
The isImplementedBy() and implementsInterface() methods (both provided by
Type) can be used to test if an interface has a relation with a class.
To demonstrate the implementation of interfaces and more features in Microsoft AJAX Library's OOP architecture, we'll implement the class design presented in this figure:

The diagram describes a simple class structure formed of four classes: Person,
and three classes that inherit from it: Student, Instructor, and Manager. We
also have two interfaces: IEmployee, and ISelfDescribingObject. Classes that
implement IEmployee must implement a method named startWorking(), which
is defined by that interface. The ISelfDescribingObject interface contains a
method named describeYourself(), which must be implemented by classes that
implement the interface.
As the diagram shows, Student implements ISelfDescribingObject, so it contains
a method named describeYourself(). It also has a method named learn().
Instructor implements both IEmployee and ISelfDescribingObject, so it
contains the required methods describeYourself() and startWorking(). It also
contains a method named teach().
Manager also implements both IEmployee and ISelfDescribingObject, but unlike
Instructor it doesn't add any more features on top of those required by the interfaces.
Before putting aside the rather theoretical area of OOP programming, here are a few guidelines for you to follow when writing your object-oriented JavaScript code with the Microsoft AJAX Library.
initializeBase() in the first line of your constructor if deriving from a
base class.Implement the exercise step by step and find detailed explanations in our book, Microsoft AJAX Library Essentials: JavaScript in ASP.NET AJAX 1.0 Explained.