libro
www.tuyano.com
Android開発ビギナーのためのJava超入門

Androidで出てくるJavaの機能 (5/5)

作成:2011-01-07 09:47
更新:2011-12-17 11:21

■スーパークラスとサブクラス

さて、続いてonCreateメソッドで行っている処理を見てみましょう。このメソッドは、Activityに用意されているもので、プログラムを起動したとき最初に呼び出されるものでしたね。ですから、これをオーバーライドして、いろんな処理を用意しておくのでした。

このメソッドをよく見ると、たいていは下のリストのような形で書かれているはずです。最初に、
super.onCreate(savedInstanceState);
こんなのがあるはずです。これは、実はとても重要な働きをするものです。

この「super」というのは、「スーパークラス」を意味する特別なキーワードです。スーパークラスというのは、継承する元になっているクラスのことです。ここでいえば、Activityクラスのことです。

これに対して、継承して新たに作ったクラスは「サブクラス」といいます。つまり、Android開発では「Activityクラスのサブクラス」を作っている、というわけですね。

さて、先ほどオーバーライドを用意すると、「メソッドが呼び出されたら、オーバーライドしたものが呼び出されるようになり、元のクラス(スーパークラス)にあったメソッドは呼び出されなくなる」と説明しました。

が、考えてみると、このスーパークラスonCreateにも、何か処理があったんじゃないでしょうか。それって、実行しなくてもいいの? そう不安になってきませんか。

そこで、スーパークラスにあるonCreateメソッドを最初に呼び出して、スーパークラス側の処理を全部済ませてから、自分の処理を行うようにしているのです。それが、super.onCreate……という部分だったのです。このように、superは、スーパークラスを示すものとして、そのままメソッドやフィールド名を続けて書いて呼び出すことができます。

これと似たようなものに「this」というのもあります。こっちは、「自分自身」を示すものです。つまり、今実行しているこのクラスのインスタンスそのものを示すのにthisが使われるわけですね。

この「スーパークラスにある機能を呼び出す」ということは、Androidに限らず、よくあります。特にAndroidの開発では、APIに用意されているクラスを継承して大半のプログラムが作られますので、必要に応じてスーパークラスに用意してある処理を実行してから自分の処理をやる、というやり方をすることがとても多いのです。

スーパークラスサブクラスの関係。これは、本格的にプログラムを作ろうとすると必ず意識しないといけなくなってきます。継承とセットでしっかり理解しておきましょう。


※[参考] 初心者のためのJava SEプログラミング入門
http://libro.tuyano.com/index2?id=4001

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ……いろいろ書いてある……
    }
※関連コンテンツ

「Android開発ビギナーのためのJava超入門」に戻る