抽象クラスとインターフェース

抽象クラスの概要

オブジェクト指向プログラミングのちょっと進んだ概念として、「抽象クラス(ちゅうしょうクラス)」というものがあるよ。

「抽象クラス」は、一言で言うと「それ自体では完成していない、不完全な設計図」のことなんだ。どういうことかというと、普通のクラスは、その設計図からすぐに「モノ(インスタンス)」を作ることができるよね?でも、抽象クラスは、それだけではインスタンスを作ることができないんだ。

まるで、おもちゃのロボットの設計図で、「腕」や「足」の基本的な形は描かれているけど、それが「どんな動きをするか」という肝心な部分がまだ決まっていない、みたいなイメージだよ。

じゃあ、何のために抽象クラスを使うんだろう?それは、「これを継承する子クラスは、必ずこの動き(メソッド)を自分で作る必要があるよ」というルールを決めるためなんだ。

例えば、動物のクラスを考えてみよう。「動物」は、みんな「鳴く」という行動をするよね。でも、犬は「ワンワン」、猫は「ニャーニャー」と、鳴き方はそれぞれ違う。このとき、「動物クラス」を抽象クラスにして、「鳴く」というメソッドを抽象メソッドとして定義するんだ。

そうすると、この抽象クラスを継承した「犬クラス」や「猫クラス」は、必ず自分たちで「鳴く」というメソッドを、それぞれの鳴き方で完成させなければならない、というルールが生まれるんだ。

抽象クラスのポイントはこれだよ。

抽象クラスは、大きなプログラムを作るときに、プログラム全体のルールを決めたり、チームで開発するときに、みんなが同じ約束でプログラムを作るようにしたりするのに、とっても役立つんだ。

次のレッスンでは、Pythonで実際に抽象クラスを作る方法を学ぶから、楽しみにしていてね!