LoginSignup
3
3

More than 5 years have passed since last update.

抽象クラス(Abstract Class)とインターフェース(Interface)の使い分け in Java

Last updated at Posted at 2017-04-27

Abstract ClassとInterfaceおさらい

できることできないことリスト

       Abstract Class Interface
定義できる? No (型にはなれる) No
fieldもてる? Yes No(できるけど強制public static final)
メソッド private/public/protected 強制public
継承 super classは一つのみ いくつでもOK

Abstract ClassとInterfaceの使い分け

以下が当てはまる場合はAbstract Classを使う

  • 抽象クラスを似ているクラスの間で共有したいとき。
  • 抽象クラスから継承されたクラスが似たようなメソッドとフィールドを持つとき。
  • Non-static non-finalなフィールドを使うとき。

以下が当てはまる場合はInterfaceを使う

  • 関係ないクラスがこのインターフェースを定義するとき(Comparableなど)。
  • 誰が定義するかわからないとき、もしくは気にしない時。
  • 多重継承したいとき。

Reference

Abstract Methods and Classes from Oracle

3
3
3

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
3
3