C#建構函式繼承

wangsen2235068發表於2012-10-14

//繼承的類,子類會呼叫父類無參的建構函式。從底層開始,一個父類,一個父類的呼叫.

public class MyClass
    {
        public MyClass()
        {
            Console.WriteLine("MyClass:預設建構函式");
        }
        public MyClass(int a, int b)
        {
            Console.WriteLine("MyClass帶參構造:a={0}, b={1}.", a, b);
        }
    }

    public class MyClass2 : MyClass
    {
        public MyClass2()
        {
            Console.WriteLine("MyClass2:預設建構函式");
        }
        public MyClass2(int a, int b)
        {
            Console.WriteLine("MyClass2帶參構造:a={0}, b={1}.", a, b);
        }
    }

    //C#繼承建構函式實現及呼叫
    public class MyClass3 : MyClass2
    {
        public MyClass3()
        {
            Console.WriteLine("MyClass3:預設建構函式");
        }
        public MyClass3(int a, int b)
        {
            Console.WriteLine("MyClass3帶參構造:a={0}, b={1}.", a, b);
        }
    }

    public class runMyApp
    {
        static void Main()
        {
            MyClass3 my = new MyClass3(3, 4);
            Console.WriteLine();
        }
    }


//1.建構函式繼承的時候,先呼叫基類的建構函式方法,再呼叫自己的建構函式方法

//2.子類建構函式可以繼承父類不同引數個數的建構函式

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 建構函式繼承
{
    //1.建構函式繼承的時候,先呼叫基類的建構函式方法,再呼叫自己的建構函式方法
    //2.子類建構函式可以繼承父類不同引數個數的建構函式
    class Class1
    {
        public Class1(string a, string b)
        {
            Console.WriteLine("Class1 2個引數的建構函式,a={0},b={1}", a, b);
        }
    }

    class Class2 : Class1
    {
        public Class2():base("class2_a","class2_b")
        {
            Console.WriteLine("Class2無參建構函式 繼承自Class1的被呼叫");
        }
    }

    class Test
    {
        static void Main(string[] args)
        {
            Class2 class2 = new Class2();
        }
    }
}


 

相關文章