問題タブ [abstract]
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.
c# - 抽象プロパティのアクセシビリティ
GetとSetの両方を持つように設定された抽象プロパティを持つ抽象クラスがあります。派生クラスからこのプロパティを常に取得できるようにしたいことはわかっていますが、特定のタイプの派生クラスでこのプロパティを設定しても意味がない場合があります。
派生クラスでSetアクセサーを省略することはできません(以下のコード例を参照)。派生クラスのsetアクセサーをオーバーライドして、ユーザーから渡された値に対して何もしないようにすることができます。しかし、特定の派生クラスのプロパティを実際に読み取り専用にする別の方法はありますか?最終的には、これらのプロパティをプロパティグリッドに表示しますが、何もしないフィールドにユーザーが値を入力することは望ましくありません。たぶん、特定の派生クラスでプロパティを読み取り専用と見なすだけですか?
また、ICustomTypeDescriptorのオーバーライドなど、プロパティをプロパティグリッドに正しく表示するために、タイプ記述子をいじりたくないのです。
php - PHP 5.2+ が抽象静的クラス メソッドを許可しないのはなぜですか?
PHP 5.2 で厳格な警告を有効にした後、厳格な警告なしで最初に作成されたプロジェクトから、厳格な標準の警告が大量に表示されるのを見ました。
厳格な基準:静的関数Program::getSelectSQL()はProgram.class.incで抽象化してはなりません
問題の関数は抽象親クラス Program に属し、TVProgram などの子クラスで実装する必要があるため、abstract static として宣言されています。
私はここでこの変更への参照を見つけました:
抽象静的クラス関数を削除しました。見落としにより、PHP 5.0.x および 5.1.x では、クラスで抽象静的関数を使用できました。PHP 5.2.x の時点では、インターフェイスのみがそれらを持つことができます。
私の質問は、PHP に抽象静的関数があってはならない理由を誰かが明確に説明できますか?
java - Javaで抽象メソッドを実装するときに@Overrideアノテーションを追加する必要がありますか?
Javaで非仮想メソッドをオーバーライドする場合は、@Override
アノテーションの使用をお勧めしますが、抽象メソッドを実装するとどうなりますか?その時も使うべき@Override
ですか?
c# - 抽象クラスのC#Constフィールド
抽象クラスでconstフィールドを宣言するのに問題があります。どうしてこれなの?
編集
明確にすべきだった。私の問題は、私の子クラスがconstフィールドを認識できないことです。
constキーワードを削除すると、孫クラスから取得できます。
perl - Perl で Java のようなインターフェースを作成できますか?
Perl の OO モデルがかなり原始的であることは理解しています。ほとんどの点で、これは本質的に名前空間のハッキングです。
とはいえ、「インターフェース」のようなものを作ることはできないのだろうか。私の目標は、それらのサブクラスによる特定のメソッドの実装を必須にすることを主な目的とする他のクラスを拡張する基本クラスを作成することです (名前は問題ありません。署名は必要ありません)。それが「純粋な仮想」クラス (Java の「インターフェース」など) であるか、スーパークラス内のこれらのメソッドの実際の実装スタブを備えた具象クラスであるかはあまり気にしませんが、私が望むのは、サブクラスは、スーパークラスの特定のメソッドを実装します。
これは可能ですか?もしそうなら、どのように?
java - リフレクションによってJavaクラスが抽象であるかどうかを判断するにはどうすればよいですか?
私はJarファイルのクラスを介して対話しており、抽象的ではないクラスを見つけたいと思っています。クラスをインスタンス化し、InstantiationExceptionをトラップすることでこれを解決できますが、一部のクラスでは起動が重いため、パフォーマンスが低下します。Class.javaのドキュメントでisAbstract()のようなものを明らかに見つけることができません。
openid - なぜオープンIDで作業するのですか?
オープンIDを使用する主な利点は何ですか?
asp.net - ASP.NET System.Web.Abstractions なぜ抽象基本クラスとして作成されたのですか?
上記のように、Microsoft がなぜ抽象化をインターフェイスではなく抽象クラスとしてリリースしたのか疑問に思っています。
File や Directory の System.IO 機能などの標準的な機能についても同様のことを行う必要があるため、洞察に興味がありますが、インターフェイスがより快適になると思いますか?
アセンブリ名前空間 System.Web.ABSTRACTions により適しているという事実以外に、代わりに抽象が選択されたのには十分な理由があるはずです。
ありがとう
java - 抽象コードと汎用コードの違い
Javaの場合の「抽象」コードと「汎用」コードの違いは何ですか? どちらも同じ意味ですか?