問題タブ [derived-class]

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 投票する
8 に答える
497 参照

java - Java: 初心者向けの継承に関する質問

基本クラス B と派生クラス D があるとします。基本クラス内に、インスタンスの型に関係なく新しいオブジェクトを返すメソッド foo() が必要です。たとえば、B.foo() を呼び出すと B 型のオブジェクトが返され、D.foo() を呼び出すと D 型のオブジェクトが返されます。一方、実装は基本クラス B にのみ存在します。

これは可能ですか?

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

java - Java で派生クラスのメンバー関数の署名を変更するにはどうすればよいですか

まず、既存のクラス構造を拡張しており、オリジナルを変更することはできません。

私はこれをしたいと思います:

前に言ったように、変更することはできず、新しい関数を作成するのではなくclass a、関数名を維持したいと考えています。displayAlteredValueこれができれば、 のいくつかのインスタンス化を のaインスタンス化に変更するだけで済みますb。への多くの関数呼び出しを置き換えるのに多くの時間を費やしたくありませんdisplayAlteredValue。(そして、はい、検索と置換などがあることは認識していますが、他の理由でそれを行うと問題が発生します)。

何か案は?

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

c# - C#: 基本クラスの静的メソッドから派生オブジェクトの型を決定する

C# プログラムには、静的な "Create" メソッドを持つ抽象基本クラスがあります。Create メソッドは、クラスのインスタンスを作成し、後で使用するためにローカルに保存するために使用されます。基本クラスは抽象クラスであるため、実装オブジェクトは常にそこから派生します。

基本クラスからオブジェクトを派生させ、派生クラスを介して静的な Create メソッド (基本クラスで 1 回実装) を呼び出し、派生オブジェクトのインスタンスを作成できるようにしたいと考えています。

私がこれをやってのけることを可能にするC#言語内の機能はありますか?私の現在のフォールバックの立場は、派生クラスのインスタンスを引数の 1 つとして Create 関数に渡すことです。つまり、次のようになります。

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

c# - C#: 派生クラスの静的メソッドから基本クラスの静的メソッドを呼び出すにはどうすればよいですか?

C# には、基本クラスの Product と派生クラスの Widget があります。

製品には、静的メソッド MyMethod() が含まれています。

静的メソッド Widget.MyMethod() から静的メソッド Product.MyMethod() を呼び出したい。

base キーワードはインスタンス メソッドでしか機能しないため、使用できません。

Product.MyMethod() を明示的に呼び出すことはできますが、後で Widget を別のクラスから派生するように変更する場合は、メソッドを修正する必要があります。

派生クラスの静的メソッドから基本クラスの静的メソッドを呼び出すことができる base に似た C# の構文はありますか?

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

c# - C#: 派生クラスをパラメーターとして渡す

画像サイズの計算を行う基本クラスがあります。私はそれからクラスを派生させており、コードで使用される定義済みの画像サイズを持っています。自分が持っているものが機能している一方で、私はそれを適切に行っていないという強い感覚を持っています.

理想的には、DerviedClass.PreviewSize をパラメーターとして GetWidth に渡し、そのインスタンスを作成する必要はありません。

0 投票する
30 に答える
143138 参照

c# - 明示的な型キャストを使用して、基本クラスオブジェクトを派生クラス参照に割り当てることは可能ですか?

C#で明示的な型キャストを使用して、基本クラスオブジェクトを派生クラス参照に割り当てることは可能ですか?

試してみましたが、実行時エラーが発生します。

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

c# - C# で基本コンストラクターの前に派生コンストラクターを実行する

Start()ここでの問題は、オブジェクトを派生クラスに渡したいということですが、基本クラスはオブジェクトを使用する派生クラスのメソッドをすぐに呼び出すため、基本クラスのコンストラクターの前に行う必要があります。

以下は、基本クラスからの抜粋です (便宜上、 BarcodeScannerから名前が変更されています)。

これが私が作成している派生クラスです。

基本コンストラクターの前に派生コンストラクターを C# で実行できるとは思えません。オブジェクトが使用される前に、オブジェクトを派生クラスに渡すためのソリューションを本当に探しています。

MyDerivedコンストラクター内に Initialize/Start if ブロックを配置することで、これを回避しました。ただし、基本クラスから派生する他のクラスがあります。そのため、すべての派生クラスでこの初期化/開始コードのブロックを繰り返さなければならなくなりました。基本クラスを変更する代わりの方法を知りたいです。

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

c# - 派生クラスを使用した C# でのシリアル化

私は通知フレームワークを構築しています。そのために、送信したいすべてのクラスが派生する基本クラスをシリアライズおよびデシリアライズしています。

問題はコードがコンパイルされることですが、実際にこの基本クラスをシリアライズしようとすると、エラーが発生します

System.Runtime.Serialization.SerializationException: アセンブリ 'Xxx.DataContract, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' の Type 'Xxx.DataContracts.WQAllocationUpdate' は、シリアル化可能としてマークされていません。

コードは次のとおりです。

DataContract通知の は次のとおりです。

データのシリアル化に使用されるコードは次のとおりです。

メッセージを作成しようとすると:

次のエラーが発生しました。

Serializable フラグを前に置いてもDataContract、問題は解決しません。


迅速な回答ありがとうございます。申し訳ありませんが、NotificationData のコードを入力するのを忘れていました (メインの投稿で編集)。

Serializable 属性を両方のクラスに入れてみましたが、成功しませんでした:(

**編集: ** 結局のところ、罪悪感:) あなたは両方とも正しかった。[Serializable]属性をすべての子クラスに広げるのを忘れていました。更新してコンパイルした後、例外が発生しなくなりました。あなたの正しい答えをありがとう:)


@Marc Gravel: 実際、私はあなたが提案していることについて考え、次の DataContractSerializer を作成しましたが、これが機能するかどうかわかりませんか? 私のクラスは他のクラスを使用していますか?DataContractSerializer の大きな問題は、シリアル化するオブジェクトの型を指定する必要があることです。私のクラスは他のクラスをプライベート フィールドとして使用しているため、問題が発生する可能性があります。

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

.net - .NETのFormクラスから派生

理論的にはフォームから派生することができますが、それはあなたがすべきではないことですか?直感的にそう思いますが、こんなルールは聞いたことがありません。

すでにFormから派生しているいくつかの具体的なクラスを意味します。たとえば、私が持っている場合class MyForm : Form、質問は次のとおりです。私はから派生できMyFormますか?

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

java - ジェネリックTからクラスを導出する

基本的なクラッド操作を実行するパラメーター化された休止状態のdaoがあり、パラメーター化された場合、特定のdaoの基本的なクラッド操作を実行するためのデリゲートとして使用されます。

実行時にTからClassを派生させて、Hibernateで次のような基準クエリを作成できるようにしたいと思います。

知っている:

は存在しませんが、実行時にTから正しいClassオブジェクトを派生させる方法はありますか?

私はジェネリックスとリフレクションを見てきましたが、適切な解決策を思いつきませんでした。おそらく何かが足りません。

ありがとう。