2015年11月11日 星期三

C8_1_5 繼承中的建構子

using System;
public class A
{
    private int x;
    public A()
    {
        x = 0;
        Console.WriteLine("Class A()");
    }
    public A(int i)
    {
        x = i;
        Console.WriteLine("Class A(int)");
    }
}
public class B : A
{
    private int y;
    public B()
    {
        y = 0;
        Console.WriteLine("Class B");
    }
    public B(int i)
    {
        y = i;
        Console.WriteLine("Class B(int)");
    }
    public B(int i, int j):base(i)
    {
        y = j;
        Console.WriteLine("Class B(int,int)");
    }
}
public class Program
{
    public static void Main()
    {
        //執行基底類別A的建構子A(),在執行衍生類別B的建構子B()
        B b1 = new B();
        Console.WriteLine();
        //執行基底類別A的建構子A(),在執行衍生類別B的建構子B(int)
        B b2 = new B(1);
        Console.WriteLine();
        //基底類別A建構子A(int),在執行衍生類別B的建構子B(int,int)
        B b3 = new B(1, 2);
    }
}

沒有留言: