多重継承は、複数のスーパークラスの性質や機能を併せ持つクラスを作りたい場合に利用します。例えば、サブスレッドを生成してファイル入力を行うクラス と、URLで指定したネット上のファイルを読み込めるクラスを多重継承できると便利そうです。ただし、多重継承は複数のクラスのメソッドやインスタンス変 数が混在したサブクラスを作るため、利用するスーパークラスの実装を指定し、意図通り動作するように調整する必要があります。
C++では、インスタンスオブジェクトが状態を保持する変数をデータメンバと呼びますが、オブジェクト指向言語では、一般にインスタンス変数と呼びま す。インスタンス変数は、オブジェクトがどのような実装で機能を実現しているかということに直結する情報を持っているので、カプセル化の原則に従い、通常 はクラスの外部からのアクセスは許しません。
オブジェクト指向の世界の大御所的な存在に「Smalltalk」があります。Smalltalkは1980年代のオブジェクト指向ムーブメントのきっ かけを作った言語システムであり、現在もVisualWorksやSqueakなどの多くの環境で触れることができます。このSmalltalkでは、整 数や真偽値、条件分岐や繰り返しに用いるブロックまで、ほぼあらゆるものがオブジェクトです。
本連載では、代表的なオブジェクト指向プログラミング言語について基本的な言語仕様を紹介しつつ、オブジェクト指向が何を目指している技術なのかについてあらためて考えてみます。オブジェクト指向の知識は前提とせず、C言語などでプログラムを書いたことがあれば理解できるように書き進めたいと思います。もちろん、オブジェクト指向について論じるには用語や概念をそれなりに知る必要があります。その部分は説明的になってしまいますが、ご存じの場合は知識の再確認と考えてお付き合いください。
本誌は、読者登録いただくことにより、毎月無料でみなさまのお手元まで直接お届けいたします(書店などでは販売していません)。
企業の情報システムを担当する方々や事業部門のIT担当の方々、およびIT関連プロフェッショナルの方々を対象に、実践的に役立つ情報を掲載、幅広く業務にご活用いただけます。