
抽象クラスとは?基本の考え方をやさしく説明
プログラミングを始めると、抽象クラスという言葉をよく聞きます。特にオブジェクト指向プログラミングで重要な概念です。
抽象クラスとは、直接インスタンス化できないクラスのことを言います。つまり、具体的な物として使うことはできませんが、他のクラスに共通の設計図を示す役割を持っています。
例えば、“動物”という抽象クラスがあったとすると、「犬」や「猫」といった具体的なクラスがそこから派生します。抽象クラスは最低限持つべき機能や性質を宣言し、それを継承した具体的なクラスが内容を決めるのです。
まとめると、抽象クラスは『設計図』であり、そこから派生したクラスが『設計図をもとに作られた具体的な製品』というイメージです。
継承とは?抽象クラスとの関係をわかりやすく解説
次に継承について説明します。継承は、既存のクラスの機能や性質を新たなクラスに引き継ぐ仕組みです。
さきほどの例でいうと、“動物”クラスの基本的な動作(歩く、鳴くなど)を「犬」クラスや「猫」クラスが継承することで、同じコードを繰り返し書かなくてもよくなります。
継承はプログラムの再利用性を高め、保守性(後から直しやすいこと)を向上させるために使われます。
抽象クラスは継承されることを前提に作られており、継承こそが抽象クラスを活かす方法の一つです。
抽象クラスと継承の違いを表で整理
まとめ:抽象クラスは設計図、継承はその設計図をもとに作る方法
抽象クラスはオブジェクト指向で重要なコンセプトで、具体的な処理は子クラスに任せるが共通の仕様だけは決めておく「設計図」です。
継承はこの設計図(抽象クラスや通常クラス)を受け継ぐことでコードの共通部分をまとめ、プログラムの効率化をはかるための仕組みです。
この二つは密接に関係していますが、役割が違うので混同しないように注意しましょう。
わからなくなったら、「設計図=抽象クラス」「設計図をもとに新しいものを作る=継承」と考えるのがおすすめです。
抽象クラスと聞くと難しく感じますが、この難しさは『直接使えない』という特性にあります。つまり、抽象クラスは『ここにこういう機能を追加してね』という約束のようなもの。まるで料理のレシピに具材の種類だけ書いて、調理方法は人に任せる感じです。だからこそ、抽象クラスは継承されて初めて意味を持つ存在なんですよ。
次の記事: 初心者必見!プリミティブ型と参照型の違いをわかりやすく解説 »