Oracle Java SE8 Silver 試験範囲その7-継承

Java Silver

公開日:2018年3月27日

このページでは、Oracle Java SE8 Silverの試験範囲のうち、「継承」について概要を説明します。

1.継承のメリット

「継承」とは、他のクラスの変数やメソッドを使用することができるようにすることをいいます。

継承は「[修飾子] class サブクラス名 extends スーパークラス名{} 」という形で記述します。

上述の通り、継承によって継承したクラスの変数やメソッドを使用することができます。

2.オーバーライド

「オーバーライド」とは、継承しているクラスのメソッドと同じメソッド名を使用して異なる処理動作を定義することをいいます。

オーバーライドは、「アクセス修飾子 戻り値 メソッド名(引数){}」の形で通常のメソッドと同様に記述します。

記述ルールとして、メソッド名と引数は継承したスーパークラスと同じであること、戻り値は継承したスーパークラスと同じ型か、またはその型のサブクラス型でなければいけません。

3.ポリモーフィズムの理解

「ポリモーフィズム」とは多態性、多相性のことであり、Javaでは共通のインターフェースや継承関係にあるクラスであり、同じメソッドや変数を扱っても、オブジェクト毎に変数やメソッド動作が異なることをいいます。

これは例えば、スーパークラスのメソッドをオーバーライドした場合には、サブクラスのメソッドが優先して利用されるが、スーパークラスのメソッドを扱うことをsuper()で明示することでスーパークラスのメソッドを利用することができるなどに見られます。

4.キャスト

「キャスト」とは、型変換のことをいいます。

キャストを使用する場合には「(データ型)値」という形で記述します。

その他、型変換には「暗黙の型変換」があります。これは特に何も記述せずとも型変換が成立するということです。ただし、常に成立するわけではなく、例えばshort型をint型に変換するなどで暗黙の型変換は成立します。しかし、逆方向のint型からshort型への変換にはキャストを使用する必要があります。

5.superとthis

スーパークラス内でスーパークラス自身の変数やメソッドなど使用する場合に「super」を使用します。自分自身のクラス内にある変数やメソッドを使用する場合には「this」を使います。

その他、コンストラクタ動作にもthis()やsuper()が使用されます。

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

クラスには、これまで説明してきた通常のクラス以外にも抽象メソッドを定義する抽象クラスや、クラスの仕様を定めたインタフェースがあります。

抽象クラスは「[修飾子] abstract class クラス名」で、抽象メソッドは「[修飾子]abstract 戻り値 メソッド名(引数)」という形で記述します。抽象メソッドは動作処理は記述しないため、「{}」のブロック部分は記述しません。

インタフェースは「[修飾子]interface インタフェース名{}」という形で記述します。