2012年4月12日木曜日

開発環境

  • Microsoft Windows 7 Home Premium (OS)
  • Microsoft Visual C# 2010 Express Edition (IDE)
  • 言語: C#

独習C# 第3版 ハーバート・シルト (著) エディフィストラーニング株式会社 矢嶋聡 (監修, 翻訳) の第8章(C継承)の理解度チェック3、4、5、6、7を解いてみる。

3.

派生クラスから基本クラスのメンバーにアクセスできないようにする方法は、そのメンバーをprivateにすればいい。

4.

baseには、

  • 基本クラスのコンストラクタを呼び出す。
  • 基本クラスのメンバーにアクセスする。

という用途がある。

5.

問題のようなクラス階層がある場合、Gammaオブジェクトをインスタンス化するとき、それらのクラスのコンストラクターは、

  1. Alphaクラス
  2. Betaクラス
  3. Gammaクラス

のコンストラクターの順番で呼び出される。

6.

メソッドのオーバーライドに関して、基本クラス型の参照変数が、派生クラスのオブジェクトを参照することが出来るのが重要であるのは、実際に参照しているオブジェクトインスタンスの型によって呼び出されるメソッドが決まるから。

7.

抽象クラスとは、派生することを前提としたクラスで、抽象メソッドをもち、そのメソッドは抽象クラスでは実装せずににそのクラスを継承した派生クラスで実装しなければならない。

コード

using System;

public abstract class X
{
    public abstract void Display();
}

public class Y : X
{
    public override void Display()
    {
        Console.WriteLine("Hello, World!");
    }
}

class Tester
{
    public void Run()
    {
        Y y = new Y();
        y.Display();
    }
    static void Main()
    {
        Tester t = new Tester();
        t.Run();
    }
}

入出力結果(Console Window)

Hello, World!
続行するには何かキーを押してください . . .

0 コメント:

コメントを投稿