1
0

More than 3 years have passed since last update.

[ java ] 抽象クラス

Posted at

前回の記事ではインターフェースについて述べた。
https://qiita.com/QiitaD/items/835ed6ee4e52cb6b214a
今回は、インターフェースとしばしば比較される「抽象クラス」について記す。

抽象クラスとは

抽象メソッドを一つ以上持つクラスのことである。抽象メソッドはサブクラスで必ず実装しなければならないので、開発者にオーバーライドを強制することができる。

扱い方

抽象クラスを扱ううえで以下のようなルールがある。
1. インスタンス化できない
2. 抽象メソッドをオーバーライドしなければならない
3. サブクラスでコンストラクタの記述が必要である。

インターフェースとの相違点

以下が相違点を表にしたものである。

抽象クラス インターフェース
実装を持つメソッド 実装可 実装不可
メンバ変数 クラスのメンバ変数 定数
多重継承 不可

実装

以下のように実装できる

//抽象クラスViecleの実装
abstract class Viecle {
    //抽象メソッド
}

またサブクラスは抽象クラスを継承することで実装できる。

//抽象クラスViecleの実装
abstract class Car extends Vielce {
    //スーパークラスのコンストラクタ呼び出し
    //抽象メソッドのオーバーライド
}
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0