これまで読んだ記事の中で、多重継承を実装すると複雑さが増すと述べられています。しかし、それが消費者側または言語開発者側の複雑さを増すのだろうか?
たとえば、あいまいさを克服するために、次のようなことを行うことができます。
class Artist{
public void Draw(){ }
}
class Cowboy {
public void Draw() { }
}
class Person : Artist, Cowboy{
}
ここでは、2つの同じ署名付きメソッドがあるように見えますが、this.base.Artist.Draw()orthis.base.Cowboy.Draw()やtypeの外側などの構文は、そのインスタンスから、person.base.Cowboy.Draw()このあいまいさを解決するのに十分に見えます。
それで、ここで話している曖昧さと複雑さは何ですか。世の中には非常に多くの製品がありますが、消費者の観点からは、私たちが扱うのはそれほど複雑ではありません。
baseキーワードは多くの場合、あいまいさを防ぐことができます:
person.base.Cowbow.Draw();(new Person()).base.Cowboy.Draw();((Person) someInstance).base.Cowboy.Draw();this.base.Cowboy.Draw();- 等