Javaの抽象クラスと抽象メソッドとは何ですか? いつ使うべきですか? チュートリアルを添付

公開: 2019-09-12
java-abstract-class-tutorial-by-crunchify

数日前、私はJavaの基本的なJavaの基礎について、Javaのインターフェイスとは何かとその使用方法に関する記事を書きました。 このチュートリアルは、基本的なJavaの基本的な「 Abstract Class and Abstract Method 」にも関連しています。

抽象クラスとは何ですか?

最初に抽象クラスを理解し始めてから、例を見ていきましょう。

  • 抽象クラスは、 abstractとして宣言されたクラスです。
  • 抽象クラスはインスタンス化できません
  • 抽象クラスはサブクラス化できます
  • 抽象メソッドが含まれる場合と含まれない場合があります
  • 抽象クラスがsubclassed化されている場合、サブクラスは通常、その親クラスのすべての抽象メソッドの実装を提供します
  • サブクラスが実装を提供しない場合、サブクラスもabstractとして宣言する必要があります。

これは非常にbasic Java Interview Questionです。 おそらく、面接中に得られる最初の1 st Java Interview Questionです。

抽象メソッドを追加せずに抽象クラスを定義できますか?

もちろんはい。 クラス抽象を宣言するということは、それ自体をインスタンス化することを許可しないことを意味するだけです。 非抽象クラスに抽象メソッドを含めることはできません。

抽象メソッドとは何ですか?

  • abstract methodは、実装なしで宣言されるメソッドです。
  • メソッドシグネチャがあるだけです。

例から始めましょう。 問題の説明:

  1. checkResult()と呼ばれる1つの抽象メソッドを持つクラスCrunchifyExam.javaを作成します。
  2. 抽象クラスCrunchifyExam.javaを拡張するクラスCrunchify1stSchoolExamResult.javaを作成します
  3. 抽象クラスCrunchifyExam.javaを拡張するクラスCrunchify2ndSchoolExamResult.javaを作成します
  4. 上記の両方のクラスは、checkResult()メソッドの実装を提供する必要があります
  5. どちらの学校も、ユーザーが合格か不合格かを確認するための独自のprocedureまたはnumber of checks持っている場合があり、 PASSED or FAILED checkResult()の独自の実装を自由に行うことができます。

Crunchify1stSchoolExamResult.javaでCrunchifyExamクラスを拡張すると、EclipseはCrunchify1stSchoolExamResult.javaに記載されている抽象メソッドを実装するようにCrunchifyExam.javaます。

抽象メソッドの実装-Crunchifyチュートリアル

Crunchify1 st SchoolExamResult.java

Crunchify2 nd SchoolExamResult.java

Eclipseコンソールの結果:

Crunchify2ndSchoolExamResult.javaを右クリックし、 Java Applicationとして実行すると、以下の結果が表示されます。

今、あなたは質問があるかもしれません

Abstract MethodClassを使用せず、インターフェイスとしてCrunchifyExamを使用するのではなく、ここでインターフェイスを使用できないのはなぜですか?

ええと– Sure you could –しかし、 getExamTime ()、 setExamTime ()、 getExamTime ()、 setExamTime ()メソッドも実装する必要があります。

抽象クラスを使用することで、他の(非抽象)メソッドの実装を継承できます。 インターフェイスではそれを行うことはできません。インターフェイスはメソッドの実装cannot provide

Javaで抽象クラスと最終クラスを作成することは可能ですか?

  • 抽象と最終は相互に排他的な概念です。
  • したがって、答えはNOです。Javaで抽象クラスまたはメソッドをfinalにすることはできません。
  • 最終クラスは完全なクラスであり、これ以上拡張することはできません。
  • 抽象クラスは不完全クラスと呼ばれ、他の具象クラスによってのみ拡張でき、すべての抽象メソッドを実装する必要があります。
  • また、方法はなく、最終クラスに抽象メソッドを含めることはできません。

Javaの複数の抽象クラスから継承することは可能ですか?

  • Javaは多重継承をサポートしていません。
  • Javaでは、単一のクラスのみを拡張できます。
  • Javaでは、多くのソースからインターフェースを実装できます。