【Java入門】インターフェースとは?抽象クラス(abstract)との違い

【Java入門】インターフェースとは?抽象クラス(abstract)との違い

Java学習で初心者の方がつまずきやすいポイントとして、「インターフェース」と「抽象クラス(abstract)」が挙げられます。両者は部分的に似た性質を持っているものの、厳密には異なります。Javaで中・上級者にレベルアップするためには、この使い方を理解することが大切です。今回はインターフェースと抽象クラスの違いや、使い分けについてご紹介します。

IT業界まるわかりガイドは、日本初Web専門スクールのインターネット・アカデミーが運営する業界情報メディアです。最新の業界情報を、初心者にも分かりやすくご紹介しています。

IT研修・ITスクールのインターネット・アカデミー

目次

Javaの「インターフェース(interface)」とは?

Javaの「インターフェース(interface)」とは?

Javaで使われるインターフェースとは、クラスに含まれるメソッドの具体的な処理内容を記述せず、変数とメソッドの型のみを定義したものです。以下のようにインターフェースを宣言および実装を行います。

【インターフェースの宣言】

interface インターフェース名{}

【インターフェースの実装】

class クラス名 implements インターフェース名{}

インターフェースには、メソッドの具体的な処理内容を記述しないため、メソッドの型だけを先に記述しておき、メソッドを利用する直前で処理内容を記述するという使い方ができます。

クラスの継承では、継承元であるスーパークラス(親クラス)は1つに限られていましたが、インターフェースにはそのような制限はありません。複数のインターフェースを継承して新しいインターフェースを作る(多重継承する)ことができます。

Javaの「抽象クラス(abstract)」とは?

Javaの「抽象クラス(abstract)」とは?

Javaのインターフェースと混同されやすい概念が「抽象クラス」です。abstract(抽象)とも呼ばれ、抽象メソッドを1つ以上持つクラスを指します。抽象メソッドは具体的な処理内容を記述せず、メソッド名や引数などの定義だけを宣言するメソッドです。

抽象クラスと抽象メソッドの書式は、以下の通りです。

【抽象クラスの宣言】

abstract class クラス名{}

【抽象メソッドの宣言】

abstract 戻り値の型 メソッド名(引数の型 引数名);

抽象クラスは、メソッドのオーバーライドができるというメリットがあります。オーバーライドとは、親クラスのメソッドをサブクラスで書き換える(上書きする)ことです。

抽象メソッドのオーバーライドによって、例えば、コーディングの時点ではどこに挿入するかは決まっていないものの、いずれ必要となるメソッドをあらかじめ宣言しておき、詳細は後のクラスで定義する、というコーディングが可能です。

ただし、抽象クラスは通常のクラス(具象クラス)とは違い、直接インスタンス化することはできません。また、インターフェースのような多重継承もできません。

インターフェースと抽象クラスの使い分け

インターフェースと抽象クラスの使い分け

インターフェースや抽象クラスは、メソッドの具体的な処理内容を記述しないことから、両者に違いはないように思えるかもしれませんが、インターフェースはクラスで共通する仕様を定義するとき、抽象クラスは他のクラスの処理の骨組みを定義するときに利用されます。
以下の具体例を通して、インターフェースと抽象クラスの使い分けを理解しましょう。

インターフェースの具体例

音楽ファイル再生プログラムを作るため、インターフェースでプログラムの再生・停止などの機能(メソッド)の存在を示し、具体的な再生機能は各メソッドに記述します。

抽象クラスの具体例

三角形や四角形という概念を拡張した「多角形クラス」を抽象クラスとして定義し、面積を求める機能の存在を抽象メソッドで宣言します。抽象メソッドには、具体的な面積の求め方は記述しません。
「多角形クラス」を継承して、三角形の面積を求める機能を持つ「三角形クラス」や四角形の面積を求める機能を持つ「四角形クラス」を作ります。

おわりに

今回はインターフェースと抽象クラスについて取り上げました。初心者の方はインターフェースと抽象クラスの考え方を理解した後、インターフェースを使って書かれたプログラム、抽象クラスを使って書かれたプログラムを見比べてみることから始めてみましょう。

インターネット・アカデミーでは、インストラクターと1対1で講義が受けられるマンツーマン授業を受講することができます。「Javaの文法がよく理解できない」「Javaを一通り学んだが自信を持てない」という方は、ぜひマンツーマン授業をお試しください。苦手分野や疑問を効率よく克服しながら、あなたに最適なペースでJavaを学ぶことができます。

Webデザイン・プログラミングスクール インターネット・アカデミー

関連記事

【Java入門】継承とは?「クラスの継承」でできること

関連講座

Java講座 ITエンジニア総合コース

Web業界への就転職・キャリアアップを成功させたいと考えている方へ
日本初そして日本唯一のWeb専門スクールインターネット・アカデミー

自分にぴったりのコースが見つかる

インターネット・アカデミーでは、Web業界を目指すあらゆる方にお応えすべく、多彩なコースをご用意しています。

Webデザインを学びたい方

プログラミングを学びたい方

自分のペースとスタイルで学べる

毎回好きな受講形式を選んで学習することができるので、働きながらじっくり通いたい方も短期間での就職を目指す方も自分の都合に合わせて、スケジュールを組むことができます。

  • ライブ授業

    現役のプロインストラクター
    と仲間と学ぶメリット

    ライブ授業
  • マンツーマン授業

    インストラクターと
    1対1という贅沢

    マンツーマン授業
  • オンデマンド授業

    いつでも学びたいことを
    学べる

    オンデマンド授業

自分に適した学習方法を探す

インターネット・アカデミーでは、無料体験レッスンを毎日開催しています。デザインやプログラミングの体験ができるのはもちろん、実際の授業に参加したり、就職や転職のご相談、通学スケジュールのご相談なども承っております。

  • ご要望をお伺い

    ご要望をお伺い

    まずはお客様のご要望をお伺いし、お一人おひとりの目的や悩みに最適な内容にカスタマイズ。お客様専用の内容で当日ご案内いたします。

  • カウンセリング

    カウンセリング

    就職や転職、在宅で働きたいなど、お客様の希望を叶えるために専任のスタッフが最適な学習プランをご提案。現在の仕事のご相談なども承ります。

  • 体験レッスン

    体験レッスン

    「自分に向いている分野は?」「自分にできる?」そんな疑問を解決するレッスンを無料で体験。デザインもプログラミングもお試しいただけます。

無料体験レッスン・個別相談のご予約

当日ご希望の方やお急ぎの方は、フリーダイヤルにてご予約いただけます。

0120-746-555 フリーダイヤル受付時間(平日・土日) 10時-21時 オンライン予約

IT研修・人材育成のご相談を無料で承っております
法人専用社員研修、内定者・新人研修のご予約

インターネット・アカデミーでは、
あらゆるニーズに合わせた研修カリキュラムを取り揃えています。

「自社に最適な研修プランを相談したい」「研修費用の相談をしたい」「助成金を申請したい」など、お電話またはお問い合わせフォームよりお気軽にご連絡ください。

03-3341-3781 受付時間(平日・土日) 10時-21時 法人専用 お問い合わせフォーム