問題タブ [multiple-inheritance]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1493 参照

php - 2 つの親クラスからの継承

私はこれについて何年も前に読みましたが、今は試したことはありません。これが可能かどうかは思い出せません。php5 で 2 つの親からクラスを拡張することは可能ですか?

class_d は class_c と class_b を拡張します

さらに、class_cとclass_b自体がclass_aから拡張されている場合、これを行うことができます...したがって、このようなものが得られます

0 投票する
5 に答える
10667 参照

c# - C#のような優れた複数継承の切断された言語で「MarshalByRefObjectでなければならない」を解決する方法は?

C#のような優れた複数継承の切断された言語で「MarshalByRefObjectでなければならない」を解決する方法は?

問題は非常に単純です。場合によっては、このクラスから継承する必要があります (インフラストラクチャ要件)。ここでは、どちらの場合でも問題ありません。では、他のクラス (ドメイン モデルの要件) から既に継承している場合はどうすればよいでしょうか。

ところで、spring.net のような優れたアプリケーション フレームワークでは、クラスに適用する必要があるインフラストラクチャの種類に関係なく、このクラスから継承する必要はありません。

ここで-3票を獲得しているのは何ですか?? :)

0 投票する
4 に答える
39334 参照

vb.net - VB .Netで多重継承は可能ですか?

VB .Netで多重継承は可能ですか?もしそうなら、構文は何ですか?

0 投票する
7 に答える
37702 参照

java - Java の入力および出力ストリーム パイプ

Javaには複数の継承がなく、両方のストリームがインターフェースではなく抽象クラスであるため、JavaでInputStreamとOutputStreamの両方であるPipeオブジェクトを作成するための良い提案はありますか?

根底にある必要性は、あるスレッドから別のスレッドへの入力に出力をパイプするために InputStream または OutputStream のいずれかを必要とするものに渡すことができる単一のオブジェクトを持つことです。

0 投票する
4 に答える
3491 参照

oop - 多重継承は悪か?

重複の可能性:
多重継承の正確な問題は何ですか?

複数のインターフェースを実装することはではないのに、なぜ多重継承は悪と見なされるのですか? 特に、インターフェースが単に純粋な抽象クラスであると考えたときは?

(多かれ少なかれ) 多重継承の正確な問題は何ですか? C# での複数の継承、その他...

0 投票する
1 に答える
935 参照

zend-framework - Zend Framework を使用してドメインで複数のテーブル継承を確立する方法は?

name、email、company_id、personType などのフィールドを含む Person テーブルを持つデータベース構造があります。すべての Person が必ずしもシステム ユーザーのものであるとは限らないため、システム内の User である Person の userName と password を定義する別のテーブル User があります。

Person テーブルのテーブル データ ゲートウェイを定義する次のコードがあります。

そして、このコードは Person のドメイン オブジェクトを定義します。

最後に、ユーザー用の別のテーブル データ ゲートウェイがあります。

そして、Model_Person テーブルを次のように拡張する基本クラス:

「Model_User」クラス (1 つを除く他のすべてのタイプのユーザーの基本タイプを提供する) を適切に拡張して、1 つのテーブルにマップする「Model_Person」クラス関数を使用すると同時に、実際の「Model_User」関数をマップして使用するにはどうすればよいですか?セカンドテーブル?

0 投票する
7 に答える
15246 参照

c++ - ダイヤモンドの継承 (C++)

ダイヤモンドの継承を持つことは悪い習慣と見なされていることを私は知っています. ただし、ダイヤモンドの継承が非常にうまく適合すると感じるケースが 2 つあります。これらの場合にダイヤモンドの継承を使用することをお勧めしますか、それともより良い別のデザインがありますか.

ケース 1:システムでさまざまな種類の「アクション」を表すクラスを作成したいと考えています。アクションは、いくつかのパラメーターによって分類されます。

  • アクションは「読み取り」または「書き込み」です。
  • アクションは、遅延ありでも遅延なしでもかまいません (1 つのパラメーターだけではありません。動作が大幅に変わります)。
  • アクションの「フロー タイプ」は、FlowA または FlowB です。

以下のデザインを予定しています。

もちろん、2 つのアクション (Action クラスから継承) が同じメソッドを実装することはありません。

ケース 2:システムに「コマンド」の複合設計パターンを実装します。コマンドは、読み取り、書き込み、削除などを行うことができます。また、読み取り、書き込み、削除などを行うことができるコマンドのシーケンスも必要です。コマンドのシーケンスには、他のコマンドのシーケンスを含めることができます。

だから私は次のデザインを持っています:

さらに、特別な種類のコマンド、「モダン」コマンドがあります。1 つのコマンドと複合コマンドの両方を最新にすることができます。「モダン」であることにより、特定のプロパティ リストが 1 つのコマンドと複合コマンドに追加されます (両方のプロパティはほとんど同じです)。CommandAbstraction へのポインターを保持し、必要なコマンドの種類に応じて (new を介して) 初期化できるようにしたいと考えています。だから私は(上記に加えて)次のデザインをしたい:

繰り返しますが、CommandAbstraction クラスから継承する 2 つのクラスが同じメソッドを実装しないようにします。

ありがとうございました。

0 投票する
4 に答える
1116 参照

c++ - 多重継承

上記の foo 呼び出しはコンパイル時エラーです。仮想継承を使わずにobjのB部分でfooを呼び出したい。それ、どうやったら出来るの。

また、仮想継承の場合、オフセット情報を vtable に格納する必要がある理由。これは、コンパイル時に決定できます。上記の場合、D のオブジェクトで foo を渡すと、コンパイル時にのみ D の A 部分のオフセットを計算できます。

0 投票する
6 に答える
4342 参照

c++ - C++ は、呼び出すオーバーロードされた関数をどのように選択しますか?

3 つのクラスがあるとします。

つまり、2 つのクラスがあり、その両方を拡張する 3 番目のクラス (多重継承) があります。

ここで、別のクラスで定義された関数があるとします。

そして、両方のインスタンスでこの関数を呼び出します。

これにより、関数呼び出しがあいまいであることを示すコンパイル時エラーが発生します。

これ以外に、C++ コンパイラが呼び出しがあいまいであると判断し、エラーをスローするケースはありますか? コンパイラはこれらのケースが何であるかをどのように判断しますか?

0 投票する
4 に答える
495 参照

java - 継承のオプション

インターフェイスを実装する以外に、多重継承に使用できる他のオプションは何ですか