關於C#中建構函式的繼承的問題

pamxy發表於2013-10-03

轉自:http://zhidao.baidu.com/link?url=guyTLwc8DCWy6KshKsbDsMAa5zhPnXU8HnTdxZacMIuyh7eJVIHg4-pur364Suycmn2PGSqhyarJda7YKRqXt_

1、建構函式不繼承,派生類會自動呼叫基類建構函式。
2、若類內沒有定義建構函式,系統會自動隱式生成一個不帶引數的建構函式,比如定義一個類:
public class A
{
 }
可以理解為它已經存在一個如下的建構函式

public class A
{
    public A()
    {
       
    }
}
3、派生類建構函式自動呼叫基類的不帶引數的建構函式,注意下面的格式
public class B:A
{
    public B()
    {
       
    }
}
相當於
public class B:A
{
    public B():base()
    {
       
    }
}

3、基類中帶引數的建構函式必須顯式呼叫,比如:
public class A
{
    public A()
    {
       
    }
    public A(string str)
    {
       
    }

}
public class B:A
{
    public B():base("aaa")
    {
       
    }
}

相關文章