基本クラスAにはサブクラスがありB、BサブクラスがありCます。A仮想メソッドを実装し、実装doStuff()せBず、実装Cします。からの の実装Cを呼び出したい(これはの の実装内から実行しますが、それはあまり重要ではありません)。AdoStuff()CdoStuff()
A::doStuff();
または:
B::doStuff();
最初のものは、実際の実装を参照しているため、より明確に見えます。B一方、2 番目のdoStuff()方法は、後でA. どちらがより標準的ですか? どちらがより危険ですか?
B::doStuff()警告が発生しなかったことに少し驚きましたがB、基本クラスからのものであっても、定義により実装があると思います。基本クラスと実装のチェーンは、任意に長く複雑にすることができますか? たとえば、それぞれが前のサブクラスをA通過した場合Z、チェーンのどこにでも実装を持つことができますか?クラスのメソッドを呼び出すと、実装が見つかるまで「チェーンを上る」だけですか?