メソッドオーバーライドとは、サブタイプのスーパータイプメソッドの実装が異なることを意味します。抽象メソッドがある場合、クラスが抽象メソッドを含むクラスを継承するたびにそれを実装する必要があります。メソッドオーバーライドと似ているのではないですか?抽象メソッドのさまざまな実装がオーバーライドとして表示できますか?
答えて
Java Language Specificationこのため、「オーバーライド」という用語を使用する:非抽象メソッドMCはクラスCから抽象メソッドMAをオーバーライドした場合、MCはC.
からミリアンペアを実現すると言われ、ここでは、オーバーライドという用語は、抽象メソッドを実装する場合も含めて使用されます。実装は、オーバーライドの特殊なケースとして記述されています。
あなたはメソッド本体とメソッドを持つクラスを拡張する場合の方法は、抽象的であるならば、あなたはがそれを(オーバーライド)を実装したり、サブクラス自体が抽象的に宣言しなければならないのどちらか一方で、あなたは、メソッドをオーバーライドすることができます。
抽象メソッドにはメソッドボディがありません。
しかし、その抽象メソッドを実装している別のクラスは、実際に実装するたびに異なる実装を行います。メソッド本体を持たないという議論は私にとっては有効ではないようです。さらに説明してください。 –
それは本質的に同じです。どちらの場合もメソッドをオーバーライドしています:メソッドが抽象メソッドであるかどうかは関係ありません。そこで、両方の例で '@ Overrides'を書くことができます。抽象メソッドと非抽象メソッドの違いは私の答えで説明されています:) – Exfridos
@Override
アノテーションを使用することはできますが、抽象メソッドの実装はIMHOをオーバーライドしません。
の実装は無効にすることができます。抽象メソッドを実装した具象クラスのサブクラスでは、具象クラスの実装をオーバーライドできますが、その時点で実装されているメソッドはもはや抽象型ではありません。
抽象クラスを継承するクラスがあり、抽象クラスも同様に実装するインターフェイスを実装している場合は、インターフェイスに抽象メソッドがあります私の抽象クラスはその抽象メソッドを実装しており、具体クラスもそのメソッドを実装しています。具象クラスはその抽象メソッドをインタフェースから実装するか、抽象クラスからの抽象メソッドをオーバーライドしますか? –
オーバーライドしています。
証明:
abstract public class Shape {
public abstract void draw();
}
public class Square extends Shape {
@Override // this does not fail!
public void draw() {
System.out.println("I am square!");
}
public static void main(String[] args) {
Shape s = new Square();
s.draw();
}
}
このがない@Override
の使用はエラーとしてコンパイラ(注釈プロセッサ)によってフラグが付けられている必要があり、オーバーライドされていました。
- 1. C#の抽象メソッドをオーバーライドするデリゲートを実装します。
- 2. メソッドは抽象クラスで実装されていますが、インターフェイスに表示されます
- 3. リスナーは抽象メソッドではなく、抽象メソッドをオーバーライドしません。JAVA
- 4. クラスは「抽象メソッドではなく、抽象メソッドをオーバーライドしません」エラー
- 5. Androidスタジオは抽象メソッドではなく、抽象メソッドをオーバーライドしません。
- 6. クラスは抽象メソッドではなく、コンパイルしようとすると抽象メソッドのエラーをオーバーライドしません
- 7. 抽象メソッドのネイティブ実装
- 8. 抽象メソッドのC++実装が満足されていない
- 9. 抽象メソッドがRecyclerViewアダプタに実装されていない
- 10. Java - オーバーライド抽象メソッド
- 11. 抽象メソッドの実装で抽象クラスのサブクラスを返すことはできません
- 12. と抽象メソッドを実装defのマクロ
- 13. エラー:(30,8)エラー:FeedsActivityが抽象メソッドではなく、コールバックのonLoadFailed()抽象メソッドをオーバーライドしません。
- 14. Androidのエラー:(20,8)エラー:フラグメントが抽象メソッドではなく、抽象メソッドをオーバーライドしません。
- 15. 抽象クラスはC#で実装されていますか?
- 16. 抽象メソッドが実装されているかどうかはどのように判断できますか?
- 17. PHPで抽象メソッドなしで抽象クラスを作成できますか?
- 18. SparkのJava FlatMapFunction:エラー:抽象メソッドではなく、FlatMapFunctionの抽象メソッド呼び出し(String)をオーバーライドしません。
- 19. 抽象クラスが可変的コンテキストで使用されるときに抽象メソッドを実装する方法
- 20. LoginActivity.AttemptLoginは抽象メソッドではなく、AsyncTaskの抽象メソッドdoInBackground(Object ...)をオーバーライドしません
- 21. クラスは抽象メソッドではなく、抽象メソッドをオーバーライドしません。ActionListenerのactionPerformed(ActionEvent)
- 22. クラスは抽象メソッドではなく、抽象メソッドonClickListenerのonClick(View)をオーバーライドしません。
- 23. 呼び出し可能なクラスでエラーが発生しました:doPingは抽象メソッドではなく、抽象メソッド呼び出し()をオーバーライドしませんか?
- 24. 抽象クラスの抽象メソッドの部分実装
- 25. 説明できない "抽象メソッドではない"抽象メソッドをオーバーライドしない "エラー
- 26. UMLでは、抽象メソッドの具体的な実装を示す必要がありますか?
- 27. フラグメントは抽象メソッドではなく、抽象メソッドonLocationChanged(Location)をオーバーライドしませんLocationListener
- 28. エラー:(22,8)エラー:CustomAdaptorは抽象メソッドではなく、抽象メソッドgetView(int、View、ViewGroup)をオーバーライドしません。
- 29. 抽象クラスはインタフェースのメソッドを隠すか、またはオーバーライドしますか?
- 30. クラスは抽象宣言または抽象メソッドを実装する必要があります
※オーバーライドしています! –