検索
連載

再利用性を高める抽象クラスを習得するソースコードで学ぶ SJC-P 5.0 ドリル(5)(1/2 ページ)

本連載は、サン・マイクロシステムズ認定のJava資格Sun Certified Programmer for Java 2 Platform 5.0(SJC-P5.0)に対応しています。最新の出題傾向に基づいて、ソースコードの問題を中心に毎回模擬問題を1問出題します。ソースコードに慣れながら、SJC-P合格を目指して頑張りましょう。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

 連載第5回の今回は、抽象クラスに関する出題です。

抽象クラスとは

 抽象クラスは通常のクラスとは異なり、メソッド名を宣言するだけで、処理内容を記述しないメソッドを持つクラスです。このメソッドを抽象メソッドと呼びます。

 抽象クラスは、処理内容を持つメソッドと抽象メソッドを混在して用意することができます。また、スーパークラスとして利用される目的で用意され、抽象クラス自体をインスタンス化することはできません。

 クラス宣言にはabstractキーワードを使用します。

【構文】
[修飾子] abstract class クラス名 { }
※[修飾子]とabstractの記述が逆でも問題ない

(例)
public abstract class Sample { }

抽象メソッド

 抽象メソッドは、abstractキーワードを使用することと、処理内容を記述しないことが決まりです。従って、メソッド名(引数)の後に{ }を付けてはいけません。

【構文】
[修飾子] abstract 戻り値の型 メソッド名(引数リスト);
※[修飾子]とabstractの記述が逆でも問題ない

(例)
public abstract void methodA();

抽象クラスを再利用する

 抽象クラス自体をインスタンス化して使用することはできません。スーパークラスとして利用します。従って、extendsキーワードを使用して抽象クラスを基にサブクラスを作成し、再利用を行います。サブクラスは、必要に応じてスーパークラスのメソッドをオーバーライドできますが、抽象クラスを基に具象サブクラスを作成する場合は、抽象クラスで宣言された抽象メソッドを必ずオーバーライドしなくてはいけません。

図1 抽象クラスを基に具象サブクラスを作成する場合
図1 抽象クラスを基に具象サブクラスを作成する場合

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

演習問題

 以下の問題を考えてみてください。解答と解説は次のページにあります。

問題

 次のソースコードがあります。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 Fooクラスを正しく使用しているものを2つ選択してください。

A.

class Bar extends Foo {
public void methodA();
}

B.

class Bar extends Foo {
abstract public void methodA() { }
}

C.

class Bar extends Foo {
public void methodA() { }
}

D.

class Bar extends Foo { }

E.

abstract class Bar extends Foo { }

       | 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る