問題タブ [abstract-methods]
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 - 抽象クラスとメソッドを理解し、それらを適切にオーバーライドする
Answer という抽象クラスがあります。仮説的には、文字列の回答、ビデオの回答、音声の回答など、さまざまな種類の回答が存在する可能性があるため、抽象化する必要があります。
StringAnswer では、これらのメソッドをオーバーライドしたいと考えています。
getAnswer は、文字列を返そうとしているため問題を引き起こしていますが、回答が返されることを期待しています。抽象的な意味で、私は Answer を返したいです。ただし、StringAnswer の内容は明らかに String になります。
では、回答を期待しているときに文字列として返すにはどうすればよいですか?
c# - 継承された抽象クラスの抽象メソッドをオーバーライドする
さて、基本的に次の問題があります。抽象クラスに抽象メソッドを持つ別の抽象クラスを継承させようとしていますが、3番目のクラスが両方から継承するため、どちらにも抽象メソッドを実装したくありませんそのうちの:
バイナリコマンドを単項コマンドから分離しようとしていますが、どちらにも実行メソッドを実装したくない/実装できません。Binary で抽象メソッドをオーバーライドし (そうする必要があるため)、実装されていない例外をスローすることを考えました。オーバーライドする場合は本体を宣言する必要がありますが、抽象化する場合は継承されたメソッドを「非表示」にします。
何かご意見は?
scala - ミックスイン時にscalaコンパイラーが抽象特性メソッドを実装するように強制できますか?
私は抽象メソッドと具体的な実装メソッドを持つ特性を持っているので、次のようなものです:
今、私は特性を混ぜ合わせます:
BaseClassは抽象メソッドを実装していません。トレイトをミックスするときに、scalaコンパイラーが抽象メソッドを(Javaインターフェースのように)実装する必要があることを強制することを期待していました。ただし、コンパイラエラーはありません。
私の特定のケースはもっと複雑です。実行時に何が起こるかをまだテストできませんでした。
- なぜscalaコンパイラはabstractメソッドの実装を強制しないのですか?
- Scalaコンパイラにabstractメソッドの実装を強制させることはできますか?
- 要約を追加するか、どこかでオーバーライドする必要がありますか?
- MyClassのインスタンスを作成して使用しようとすると、実行時に何が起こりますか?
go - 体のない機能とはどういう意味ですか?
そのパッケージのコードを読んでいて、time
どのように機能するのか知りたいですfunc After(d Duration) <-chan Time
。
コードは次のとおりです。
だから私はの定義を見つけましたstartTimer
-それはとても奇妙なので、関数startTimer
は関数本体を持っていません。
私はそれを知りたいです:
- の実際のコードはどこにありますか
startTimer
- ここに「抽象メソッド」が存在する理由
- Goの作者がこのように書いた理由
ありがとう!
vb.net - MustOverride は仮想メソッドとして判明しますか?
Assembly.GetInterfaces()を調査しているときに、メソッドがMustOverride メソッドであることがわかりました。私の理解では、派生クラスに対するデフォルトのアクションがないことを意味します。基本的には単なる署名であり、抽象メソッドです。それでも、型で使用することはでき、MustOverride メソッドのコードを記述しなくても、実装されているすべてのインターフェイスを返します。
MustOverride メソッドに組み込まれたこのコードはどこにありますか? 作成された型でメソッドを呼び出すだけで、どういうわけか間接的にオーバーライドしましたか?
この質問は純粋に研究と発見に基づいています。私は言語の限界を理解する以外に何もしようとはしていません。
使用したコードは次のとおりです。
java - 抽象クラスの初期化
私は抽象クラスを持っています:
これは非抽象メソッドを提供し、次のように初期化します。
そのため、初期化時にまだエラーが発生しますが、なぜですか? クラスに抽象メソッドを 1 つ提供すると、クラスを初期化できないことが理解できます。この状況で、まだエラーが発生するのはなぜですか? どんな助けでもいただければ幸いです
java - 抽象クラスの新しいオブジェクトを作成できない場合、抽象クラスに非抽象メソッドを持つことのポイントは何ですか?
抽象クラスは、抽象メソッドと非抽象メソッドの両方を持つことができます。抽象クラスの新しいオブジェクトを作成できない場合、抽象クラスに非抽象メソッドを持つことのポイントは何ですか?
子クラスの非抽象メソッドをオーバーライドして、子クラスのオブジェクトを介して使用できることを知っています。しかし、それを行っている場合、そもそも非抽象メソッドを実装で使用する必要があるのは何ですか?
java - メソッド宣言でabstractキーワードとstrictfpキーワードを一緒に使用できない理由は?
キャサリン・シエラのSCJPを読んでいます。
本で説明されているように、抽象キーワードと最終キーワードは互いに矛盾するため、一緒に使用できないことを理解しています。
しかし、strictfp キーワードと abstract キーワードを一緒に使用できない理由がわかりません。
strictfp キーワードが Java で正確にどのように機能するかはまだわかりません。
私の考えでは、抽象的なstrictfpメソッドを宣言し、サブクラスを持ち、そのメソッドを「strictfpの方法」で実装できます。
これらのキーワードがうまく調和しない理由は何ですか?
編集
本を再確認しましたが、確かに
インターフェイス メソッドは抽象的であるため、 final 、 strictfp 、または native とマークすることはできません。
キャサリン・シエラによるSCJPから。21ページ。
また、私の IDE (Eclipse Juno) は、abstract キーワードと strictfp キーワードを一緒に使用できないと言っています。
うーん、なぜですか?
acceleo - mtl 言語でスーパークラスから抽象メソッドを取得するにはどうすればよいですか
Acceleo-MTL を使用して Java クラスを生成しています。抽象スーパークラスからすべての抽象メソッドを取得するにはどうすればよいですか?
簡単な操作とインターフェースを得るために、私はこれを使用します:
インターフェイスのような抽象メソッドのゲッターメソッドはありますgetImplementedInterfaces()
か?