問題タブ [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 投票する
9 に答える
4368 参照

sql - データベースの継承?

データベース (具体的には SQL Server 2005) で継承を使用する方法はありますか?

すべてのエンティティに追加したいCreatedOnCreatedByのようなフィールドがほとんどないとします。これらのフィールドをすべてのテーブルに追加する代わりに、別の方法を探しています。

0 投票する
10 に答える
1584 参照

c++ - 継承とポリモーフィズム - 使いやすさと純粋さ

プロジェクトでは、私たちのチームはオブジェクト リストを使用して、すべて同様の方法で処理する必要がある一連のデータに対して大量の操作を実行しています。特に、異なるオブジェクトが同じように動作するのが理想的です。これは、ポリモーフィズムによって非常に簡単に実現できます。私が抱えている問題は、継承が関係を持っているのではなく、関係であることを意味することです。たとえば、いくつかのオブジェクトにはダメージ カウンターがありますが、これをオブジェクト リストで使いやすくするために、ポリモーフィズムを使用できます。(人ダメージカウンターではありません。)

私が考えることができる唯一の解決策は、継承に頼るのではなく、クラスのメンバーが暗黙的にキャストされたときに適切なオブジェクト型を返すようにすることです。プログラミングの容易さと引き換えに、 is a / has a idea を忘れた方がよいでしょうか?

編集:より具体的には、私はC++を使用しているため、ポリモーフィズムを使用すると、派生クラスが単一のリスト内に存在し、ベースの仮想関数によって操作されるという意味で、異なるオブジェクトが「同じように動作する」ことができますクラス。インターフェイスの使用 (または継承を介してそれらを模倣すること) は、私が喜んで使用するソリューションのようです。

0 投票する
10 に答える
1225802 参照

c# - C#でベースコンストラクターを呼び出す

基本クラスから継承し、継承されたクラスのコンストラクターから基本クラスのコンストラクターに何かを渡したい場合、どうすればよいですか?

たとえば、Exceptionクラスから継承する場合、次のようなことを行います。

基本的に私が欲しいのは、文字列メッセージを基本のExceptionクラスに渡せるようにすることです。

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

java - 一般的な引数を使用して EJB 3 セッション Bean メソッドをオーバーライドするにはどうすればよいですか?

次の EJB 3 インターフェイス/クラスがあるとします。

そして、Bean にアクセスする別のFooRepositoryBean :

ただし、FooRepositoryBean の delete メソッドが呼び出されたときにオーバーライド メソッドが実行されることはありません。代わりに、で定義されている削除メソッドの実装のみAbstractRepositoryが実行されます。

私は何を間違っていますか、それともジェネリックと継承がまだうまく連携していないというのは、単に Java/EJB 3 の制限ですか?

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

c# - C# では、基本コンストラクターを呼び出す必要がありますか?

C# では、既定のコンストラクターを持つ継承されたクラスがある場合、基本クラスのコンストラクターを明示的に呼び出す必要がありますか?それとも暗黙的に呼び出されますか?

0 投票する
3 に答える
843 参照

c# - 名前空間構造で継承階層を公開するのは悪い考えですか?

特定の実装を作成するためにすべて一緒にオーバーライドされる、相互に関連するクラスのグループがあります。相互に関連するサブクラスを名前空間で囲むのは良い考えかどうか疑問に思っています。

例として、次の名前空間とクラスを考えてみましょう。

名前空間を構成する最良の方法は何ですか? 基本クラスは実際には Protocol.Tcp 名前空間にも Protocol.Ftp 名前空間にも属していないため、名前空間で継承を公開することは避けられないようです。

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

c# - XML シリアル化と継承された型

以前の質問に続いて、オブジェクト モデルを XML にシリアル化する作業を続けています。しかし、私は今問題に遭遇しました (quelle 驚き!)。

私が抱えている問題は、具体的な派生型によって設定された抽象基本クラス型のコレクションがあることです。

関連するすべてのクラスに XML 属性を追加するだけで十分だと思いました。悲しいことに、そうではありません!

だから私はグーグルで掘り下げましたが、なぜそれが機能していないのか理解しました. 実際、XmlSerializerXML との間でオブジェクトをシリアル化するために巧妙なリフレクションを行っていますが、抽象型に基づいているため、一体何と話しているのかを理解できません。罰金。

私はCodeProject でこのページに出くわしましたが、これは大いに役立つように見えます (まだ完全に読んだり消費したりしていません)。これを可能な限り迅速/軽量な方法で起動して実行するためのハック/トリック。

また、追加しなければならないことの 1 つは、ルートをたどりたくないということです。XmlIncludeそれとの結合が多すぎるだけでなく、システムのこの領域は大規模な開発が行われているため、メンテナンスの頭痛の種になるでしょう!

0 投票する
9 に答える
1349 参照

c# - C# の親クラスにのみコンストラクターを表示する方法はありますか?

作成した抽象クラスから継承するクラスのコレクションがあります。抽象クラスの具体的な実装のインスタンスを作成するためのファクトリとして抽象クラスを使用したいと思います。

親クラスを除くすべてのコードからコンストラクターを非表示にする方法はありますか?

基本的にはこうしたい

しかし、私は誰もが 2 つの具象クラスを直接インスタンス化できないようにしたいと考えています。MakeAbstractClass() メソッドだけが基本クラスをインスタンス化できるようにしたいと考えています。これを行う方法はありますか?

UPDATE
Abstract クラスの外部から ConcreteClassA または B の特定のメソッドにアクセスする必要はありません。Abstract クラスが提供する public メソッドだけが必要です。具体的なクラスがインスタンス化されるのを防ぐ必要はありません。抽象クラスの内部にあるいくつかの非常に具体的なものの実装が異なるだけで、新しいパブリック インターフェイスは提供されないため、回避しようとしているだけです。

私にとって、最も簡単な解決策は、samjudson が述べたように子クラスを作成することです。ただし、抽象クラスのファイルが必要以上に大きくなるため、これは避けたいと思います。組織のために、クラスをいくつかのファイルに分割しておきたいと思います。

これは簡単に解決できるものではないと思います...

0 投票する
3 に答える
4700 参照

c# - サブクラス固有のデータを格納する必要がある配列を継承する最良の方法は何ですか?

次のような継承階層を設定しようとしています。

MotorcycleAxle オブジェクトのみを Motorcycle オブジェクトの Axles 配列に格納し、CarAxle オブジェクトを Car オブジェクトの Axles 配列に格納したいと考えています。問題は、サブクラスの配列をオーバーライドしてどちらか一方を強制する方法がないことです。理想的には、Motorcycle クラスには次のようなものが有効です。

ただし、オーバーライドするときは型が一致する必要があります。このアーキテクチャをどのようにサポートできますか? Axles メンバーがアクセスされる場所で、多くの実行時の型チェックとキャストを行う必要があるだけですか? 実行時の型チェックを追加するのは好きではありません。強い型付けとポリモーフィズムの利点が失われ始めるからです。WheelAttached および Left/RightWheelAttached プロパティはタイプに依存するため、このシナリオでは少なくともいくつかの実行時チェックが必要ですが、それらを最小限に抑えたいと考えています。

0 投票する
3 に答える
476 参照

.net - 基本フォームから継承されたフォームのコンポーネントへのアクセス

私のプロジェクトの多くのフォームは、基本フォームから継承しています。派生フォームの Controls コレクションを取得するのは簡単ですが、VS がこれを非公開としてマークするため、Components コレクションにアクセスする簡単な方法を見つけられませんでした。

これはリフレクションで実行できると思いますが、以前にリフレクションを使用したことがないため、どうすればよいかわかりません。

現在、GetComponents 関数をオーバーライドし、関心のあるコンポーネントの配列を返す、一種の不格好な回避策を使用しています。オーバーライドされた関数の実装を忘れやすいため、明らかにエラーが発生しやすくなっています。または、コンポーネントが追加されたときに更新します。

誰かが何かヒントを持っているか、より良い方法を提案できるなら、私は聞いてうれしいです.