問題タブ [subclass]
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.
java - サブクラスのメンバーデータをオーバーライドし、スーパークラスの実装で使用しますか?
Javaでは、サブクラスのメンバーデータをオーバーライドし、そのオーバーライドされたバージョンをスーパークラスの実装で使用されるデータにすることは可能ですか?
言い換えれば、これが私が起こそうとしていることであり、それは起こっていない:
..
この呼び出し:
...プリントPizza
とShoes
。代わりに後者を印刷してほしい。
私は、これは階層的なOOの実践としてはかなり貧弱であることを認識しています。XML構成とリフレクションで何かをしているので、非常に特殊なケースでそれが必要でした。
これを実現できる修飾子はありますか?
はい、サブクラスでこの問題を回避するために使用できるラッパーがあることを認識しています。たとえば、のコンテンツがstuff[]
別の名前の配列に格納されていることを示します。私はこれを単純にしようとしているだけで、原則として興味があります。
よろしくお願いします!
language-agnostic - スーパークラスで予期しない動作を引き起こすサブクラス—オブジェクト指向デザインの質問
私はObjCでコーディングしていますが、この質問は意図的に言語に依存しません-ほとんどのオブジェクト指向言語に適用されるはずです
「Collection」クラスがあり、「Collection」から継承する「FilteredCollection」を作成するとします。フィルタはオブジェクトの作成時に設定され、それ以降、クラスはそのコンテンツにフィルタが適用された「コレクション」のように動作します。
私は物事を明白な方法で行い、コレクションをサブクラス化します。私はすべてのアクセサーをオーバーライドし、かなりきちんとした仕事をしたと思います-FilteredCollectionはコレクションと同じように動作するように見えますが、ユーザーにフィルターで除外されているフィルターに対応するオブジェクトが含まれています。FilteredCollectionsを作成して、コレクションとしてプログラムに渡すことができると思います。
しかし、私はテストに来て、-ああ、いや-それは機能していません。デバッガーを詳しく調べてみると、一部のメソッドのCollection実装が、オーバーライドされたFilteredCollectionメソッドを呼び出していることがわかります(たとえば、Collectionがオブジェクトを反復処理するときに依存する「count」メソッドがありますが、フィルター処理されたカウントを取得しています。 、正しい外部動作を与えるためにcountメソッドをオーバーライドしたため)。
ここで何が問題になっていますか?OOもこのように機能する必要があるように感じられるにもかかわらず、いくつかの重要な原則に違反しているように感じるのはなぜですか?この問題の一般的な解決策は何ですか?ありますか?
ちなみに、特にこの問題の良い「解決策」は、オブジェクトをコレクションに入れる前にフィルタリングすることであり、コレクションをまったく変更する必要がないことを知っていますが、より一般的な質問をしていますそれよりも-これは単なる例です。より一般的な問題は、サブクラスによって変更される可能性のある他のメソッドの動作に依存する不透明なスーパークラスのメソッドと、このような動作を変更するためにオブジェクトをサブクラス化する場合の対処方法です。
iphone - UIView をサブクラス化するにはどうすればよいですか?
これはばかげた質問のように思えるかもしれませんが、UIView をサブクラス化する方法をよく思い出せません。誰かが私を正しい方向に向けることができますか?
c# - タイプ名 {myUserControl} はタイプ {myNamespace.myNamespace} に存在しません
問題があります(明らかに質問です:)
私はプロジェクトを持っています-MyProject...したがって、プロジェクトの残りの部分は、名前空間「MyProject」としてクラスのデフォルトを使用します...問題ありません。
私のプロジェクトでは、他の多くのコントロール (ラベル、テキスト ボックスなど) を持つカスタム ユーザー コントロールを作成しました。したがって、そのクラスは「MyProject」のデフォルト名前空間内にもあります。すべて問題なくコンパイルされます。スコープの可視性を確認するために、このユーザー コントロールで、DESIGNER コードとコード ビハインド (マイ コード) が同じ "MyProject" 名前空間内にあり (それらは同じ)、両方ともそれぞれ PUBLIC PARTIAL CLASS MyUserControl であることを確認しました。 .
今問題。シンプルなフォームを作成します (デフォルトでは名前空間 "MyProject" にもあります)。ツールボックスから、「MyUserControl」が存在するので、MyNewForm にドラッグします。ドラッグ/ドロップは問題ありません。
すべて保存、コンパイル、失敗... デザイナーは余分な「MyProject」参照を追加しているため、ユーザーコントロールが実際には MyProject.MyUserControl ではなく MyProject.MyProject.MyUserControl .. にあるように見えます。
余分な「MyProject.」を手動で削除し、保存してコンパイルするとすぐに、すべて問題ありません。ただし、フォームを再編集して何かを変更すると、M$ はそれを元の「MyProject.MyUserControl」参照に戻します。
そうは言っても、ここに私のプロジェクトのスニペットがあります...
次に、MyUserControl 定義で...
デザイナーを介して MyUserControl から...
助けてくれてありがとう...
wpf - データバインドされたWPFリストボックスにサブクラス化されたListboxItemsを生成させる
データバインドされたWPFリストボックスで、通常のListboxItemsの代わりにサブクラス化されたListboxItemsを生成したいと思います。この場合、サブクラス化されたListBoxItemsにいくつかのカスタムプロパティが必要なため、DataTemplateでは不十分です。
バインドされたデータのmySubClassedListBoxItemアイテムをListBoxで生成する方法はありますか?
ありがとう、バート
iphone - グループ化されたUITableViewのUITableViewCellを確実にサブクラス化する方法は?
のカスタマイズされたサブクラスを作成するUITableViewCell
と、結果はプレーンスタイルの長方形のセルではうまくUITableView
機能しますが、グループ化されたスタイルのテーブルの丸みを帯びたセルではまったく機能しません。
UITableViewCell
グループ化されたスタイルのテーブルで機能するセルを描画するために確実にサブクラス化する方法はありますか?(Interface Builderを使用せずに。)
objective-c - NSScrollerのグラフィカルなグリッチ/ラグ
次のNSScrollerサブクラスがあり、丸みを帯びた白いノブがあり、矢印/スロット(背景)がないスクロールバーを作成します。
スクローラーを使用するときに顕著な遅延があることを除いて、これはすべて正常に機能します。このビデオを参照してください:
私は自分が間違っていることについて混乱しています、何か提案はありますか?
iphone - UIView サブクラスのアニメーション効果を「回避」したい
「丸みを帯びた」「半透明」のUIView(または同様のもの)を作成したいのですが、以下のコードでアニメーション効果が得られ、透明密度が徐々に変化します。私が望むのは、この影響を回避し、結果の画像を最初からまっすぐに描画することです。
誰でも方法を知ることができますか?ありがとうございました。
c++ - 非テンプレート クラスをテンプレート クラスのサブクラスにすることは可能ですか?
次のように定義されたテンプレートクラスがあります。
C++ では、テンプレート クラスの非テンプレート サブクラスを作成できますか? つまり、次のようなことができますか。
次の仮想関数が未定義であると言うので、それは私にとってはうまくいきません:
特定の T に対して具体的に定義するにはどうすればよいですか?
php - PHP5でスーパークラスオブジェクトをサブクラスオブジェクトにする
AのオブジェクトをBのコンストラクターに渡して、Bのオブジェクトを作成したいのですが、ご覧のとおり、$this変数を再割り当てすることはできません。クラスAを変更することは許可されていません。Aに多くのプロパティがある場合、Bのコンストラクターで次のようなことを行うのは面倒です。
私の質問は、最小限のコーディングでAのオブジェクトを使用してクラスBのオブジェクトを安全に作成するにはどうすればよいかということです。