An implementation relationship between a type and interface is one in which a type declares that it implements the interface. Such a declaration requires that the type implement all the type members of the interface it is implementing. A type that supports a particular interface is convertible to that interface. This allows types to guarantee that they support certain methods without requiring an inheritance relationship.
A type implementing an interface with multiply inherited type members of the same name must still implement those methods even though they can not be accessed directly from the derived interface being implemented. Even MustInherit classes must provide declarations of all the members of interfaces that they implement; however they can defer implementation of these methods to derived classes by declaring the methods as MustOverride.