Source: http://www.cs.cornell.edu/info/courses/spring-98/cs211/lecturenotes/04-MultInherIntfs.pdf