【図解付き】抽象クラスと継承の違いを徹底解説!初心者でもわかるオブジェクト指向の基本

  • このエントリーをはてなブックマークに追加
【図解付き】抽象クラスと継承の違いを徹底解説!初心者でもわかるオブジェクト指向の基本
この記事を書いた人

中嶋悟

名前:中嶋 悟(なかじま さとる) ニックネーム:サトルン 年齢:28歳 性別:男性 職業:会社員(IT系メーカー・マーケティング部門) 通勤場所:東京都千代田区・本社オフィス 通勤時間:片道約45分(電車+徒歩) 居住地:東京都杉並区・阿佐ヶ谷の1LDKマンション 出身地:神奈川県横浜市 身長:175cm 血液型:A型 誕生日:1997年5月12日 趣味:比較記事を書くこと、カメラ散歩、ガジェット収集、カフェ巡り、映画鑑賞(特に洋画)、料理(最近はスパイスカレー作りにハマり中) 性格:分析好き・好奇心旺盛・マイペース・几帳面だけど時々おおざっぱ・物事をとことん調べたくなるタイプ 1日(平日)のタイムスケジュール 6:30 起床。まずはコーヒーを淹れながらニュースとSNSチェック 7:00 朝食(自作のオートミールorトースト)、ブログの下書きや記事ネタ整理 8:00 出勤準備 8:30 電車で通勤(この間にポッドキャストやオーディオブックでインプット) 9:15 出社。午前は資料作成やメール返信 12:00 ランチはオフィス近くの定食屋かカフェ 13:00 午後は会議やマーケティング企画立案、データ分析 18:00 退社 19:00 帰宅途中にスーパー寄って買い物 19:30 夕食&YouTubeやNetflixでリラックスタイム 21:00 ブログ執筆や写真編集、次の記事の構成作成 23:00 読書(比較記事のネタ探しも兼ねる) 23:45 就寝準備 24:00 就寝


抽象クラスとは?基本の考え方をやさしく説明

プログラミングを始めると、抽象クラスという言葉をよく聞きます。特にオブジェクト指向プログラミングで重要な概念です。

抽象クラスとは、直接インスタンス化できないクラスのことを言います。つまり、具体的な物として使うことはできませんが、他のクラスに共通の設計図を示す役割を持っています。

例えば、“動物”という抽象クラスがあったとすると、「犬」や「猫」といった具体的なクラスがそこから派生します。抽象クラスは最低限持つべき機能や性質を宣言し、それを継承した具体的なクラスが内容を決めるのです。

まとめると、抽象クラスは『設計図』であり、そこから派生したクラスが『設計図をもとに作られた具体的な製品』というイメージです。


継承とは?抽象クラスとの関係をわかりやすく解説

次に継承について説明します。継承は、既存のクラスの機能や性質を新たなクラスに引き継ぐ仕組みです。

さきほどの例でいうと、“動物”クラスの基本的な動作(歩く、鳴くなど)を「犬」クラスや「猫」クラスが継承することで、同じコードを繰り返し書かなくてもよくなります。

継承はプログラムの再利用性を高め、保守性(後から直しやすいこと)を向上させるために使われます。

抽象クラスは継承されることを前提に作られており、継承こそが抽象クラスを活かす方法の一つです。


抽象クラスと継承の違いを表で整理

able border="1">項目抽象クラス継承定義直接インスタンス化できない基底クラスあるクラスの機能を別クラスに引き継ぐ仕組み役割共通の設計図を示す既存の機能を再利用し拡張する実体化できない新しいクラスを作る使い方抽象メソッドを定め、子クラスで実装を強制できる親クラスの機能を引き継ぎつつ新機能を追加できる

まとめ:抽象クラスは設計図、継承はその設計図をもとに作る方法

抽象クラスはオブジェクト指向で重要なコンセプトで、具体的な処理は子クラスに任せるが共通の仕様だけは決めておく「設計図」です。

継承はこの設計図(抽象クラスや通常クラス)を受け継ぐことでコードの共通部分をまとめ、プログラムの効率化をはかるための仕組みです。

この二つは密接に関係していますが、役割が違うので混同しないように注意しましょう。

わからなくなったら、「設計図=抽象クラス」「設計図をもとに新しいものを作る=継承」と考えるのがおすすめです。

ピックアップ解説

抽象クラスと聞くと難しく感じますが、この難しさは『直接使えない』という特性にあります。つまり、抽象クラスは『ここにこういう機能を追加してね』という約束のようなもの。まるで料理のレシピに具材の種類だけ書いて、調理方法は人に任せる感じです。だからこそ、抽象クラスは継承されて初めて意味を持つ存在なんですよ。


ITの人気記事

ズームとズームワークプレイスの違いとは?初心者でもわかる徹底解説!
1319viws
青写真と青焼きの違いとは?簡単解説でわかりやすく理解しよう!
1041viws
「画素(ピクセル)とは何?解説と画像の違いをやさしく理解しよう」
918viws
CADデータとDXFデータの違いを徹底解説!初心者でもわかる使い分けのポイント
830viws
スター結線とデルタ結線の違いを徹底解説!初心者でも分かる電気の基本
798viws
初心者でもわかる!しきい値と閾値の違いを徹底解説
665viws
5GとXi(クロッシィ)ってどう違うの?初心者にもわかりやすく解説!
658viws
RGBとsRGBの違いって何?初心者でもわかる色の基本知識
627viws
HTTPとHTTPSの違いをわかりやすく解説!安全なネット利用のために知っておきたいポイント
591viws
インターフォンとインターホンの違いって何?わかりやすく解説!
588viws
API仕様書とIF仕様書の違いを徹底解説!初心者でもわかるポイントとは?
584viws
RGBとVGAの違いを徹底解説!初心者にもわかりやすい映像信号の基礎知識
578viws
IPアドレスとデフォルトゲートウェイの違いをわかりやすく解説!ネットワークの基本を理解しよう
558viws
SSDとUSBメモリの違いを徹底解説!初心者でもわかる保存デバイスの選び方
556viws
インプレッション数とクリック数の違いを徹底解説 — CTRを上げるための基礎と落とし穴
522viws
モバイルデータ通信番号と電話番号の違いを徹底解説!初心者でもわかるスマホの基礎知識
498viws
USBフラッシュメモリとUSBメモリの違いとは?初心者でもわかる解説!
492viws
グロメットとコンジットの違いとは?わかりやすく解説!
487viws
USB充電器とアダプターの違いとは?初心者にもわかりやすく解説!
477viws
ベアリングとリテーナーの違いとは?初心者でもわかる基本の解説
469viws

新着記事

ITの関連記事