Interfaceって機能がなぜ必要?

1. Super1, Super2を多重継承したDerived ClassからSuper1, 2に共にあるfooメンバにアクセスすると、Super1.foo, Super2.fooのどちらが呼ばれる?

2. この問題を回避するには、多重継承を禁止すれば良い(菱形継承問題、Diamond Problem)

3. もう一つの解決方法は、宣言しか実装していないClass(Interface, Prototype, Abstruct Class, Module)を使えば良い。

この理解でOK?