最終更新:2013-01-29 (火) 05:10:56 (4095d)  

Java/抽象クラス
Top / Java / 抽象クラス

abstract class

  • 抽象クラスのオブジェクトを生成することはできない
  • 抽象メソッド?は実装を持たない
  • 抽象クラスをサブクラスで継承し、そのサブクラス内でメソッドを実装(オーバーライド
  • 抽象クラスには抽象メソッド?/普通のメソッドを持てる。ただし、抽象メソッド?があるクラスは必ず抽象クラスとして宣言する必要がある
  • 抽象メソッド?がない、抽象クラスを宣言することもできる。かならず継承が行われ、なんらかのメソッドの変更があることを表す。
  • 抽象クラスを継承したサブクラスで抽象メソッド?を実装(オーバーライド)しない場合、そのサブクラスは抽象クラスとして宣言される。

Java/インターフェイスとの違い

  • 抽象クラスには抽象メソッドと抽象メソッドでないメソッドの両方を宣言することができるが、インタフェースは抽象メソッドのみしか宣言することができない。
  • サブクラスで継承できる抽象クラスはJavaは多重継承をサポートしていないため、1つのみ。インプリメントするインタフェースは複数インプリメントすることができます。
  • 抽象クラスの機能を利用するためには抽象クラスを継承する必要があるため、その機能は継承関係内に限られる。
    • インタフェースはインプリメントにより利用することができるため、その機能が継承関係内に限られることはない。