本文へスキップ

【抽象クラス】と【インターフェース】の違いとは?例文付きで使い方や意味をわかりやすく解説

【抽象クラス】と【インターフェース】の違いとは?例文付きで使い方や意味をわかりやすく解説
※本記事には広告・プロモーションが含まれています。

抽象クラスとインターフェースの分かりやすい違い

抽象クラスとインターフェースの違いは、「共通の処理を持てるか」と「同時にいくつ満たせるか」にあります。
抽象クラスは、共通の処理を書き込みつつ、一部を「中身は子に任せる」と空けたまま残しておける親クラスです。
インターフェースは、中身を持たず「この呼びかけに応えられること」という約束だけを並べた取り決めです。

抽象クラスとは?

抽象クラスとは、それ自体からは実体を作れず、共通の処理を書き込みながら一部の操作を「子が用意すること」と宣言しておけるクラスのことです。
円や四角のような子のクラスが、空けられた操作の中身をそれぞれ埋めて実体を作る場面で用いられます。
共通の土台を一か所に置くことで、変わる部分だけを差し替える設計に向いているという性質を持ちます。

ただし親クラスとしての結びつきを伴うため、多くの言語では一つしか継承できず、あとから別の土台に乗り換えるのは容易ではありません。

抽象クラスの例文

  • ( 1 ) 図形を表す抽象クラスを用意し、面積の計算だけ子に任せた。
  • ( 2 ) 抽象クラスからは、そのままでは実体を作れない。
  • ( 3 ) 共通の処理は抽象クラスに書き、変わる部分だけを差し替える設計にした。
  • ( 4 ) 多くの言語では、抽象クラスは一つしか継承できない。

抽象クラスの会話例

抽象クラスって、普通のクラスと何が違うんですか。
そのままでは実体を作れません。一部の処理を、あえて書かずに空けておけるんです。
空けたままでいいんですか。
子のクラスが埋めます。ただし親子の縛りが生まれ、多くの言語では親は一つしか選べません。

インターフェースとは?

インターフェースとは、「この呼びかけに応えられること」という約束の一覧を定めた取り決めのことです。
「印刷できるもの」「保存できるもの」といった性質を示したい場面で用いられます。
これを満たすと宣言したクラスがその操作を必ず用意するため、血縁のないクラスどうしでも外から見れば同じように扱えるという性質を持ちます。

言語によっては標準の実装を書ける仕組みもあり、抽象クラスとの境界はやや近づいているとされます。

インターフェースの例文

  • ( 1 ) 「保存できる」というインターフェースを定義し、複数のクラスに満たさせた。
  • ( 2 ) インターフェースは中身を持たず、できることの約束だけを並べる。
  • ( 3 ) 一つのクラスが複数のインターフェースを同時に満たすこともできる。
  • ( 4 ) インターフェースを守っていれば、内部の作りが違っても呼び出す側は困らない。

インターフェースの会話例

インターフェースは、その縛りがないということですか。
はい。中身を持たず、できることの約束だけを並べます。
複数を同時に満たせますか。
多くの言語では可能です。性質を組み合わせて表現できるのが強みですね。

抽象クラスとインターフェースの違いまとめ

抽象クラスとインターフェースの違いは、共通の処理を持てるかと、同時にいくつ満たせるかにあります。
抽象クラスは共通の処理を書き込んだ土台を配る仕組みであるのに対し、インターフェースは満たすべき条件だけを示す仕組みです。
共通の土台を配りたい場合は「抽象クラス」、満たすべき条件を示したい場合は「インターフェース」と区別されます。

抽象クラスとインターフェースの読み方

  • 抽象クラス(ひらがな):ちゅうしょうくらす
  • 抽象クラス(ローマ字):chuushoukurasu
  • インターフェース(ひらがな):いんたーふぇーす
  • インターフェース(ローマ字):intaafeesu
  1. TOP
  2. 言葉の違い
  3. IT・通信
  4. 【抽象クラス】と【インターフェース】の違いとは?例文付きで使い方や意味をわかりやすく解説