用法一:
父類的建構函式總是在子類之前執行的。既先初始化靜態建構函式,後初始化子類建構函式。
publicclass
basecircle
public basecircle(double
arg)
}public
class
subcircle : basecircle
public subcircle(double a):base
(a)
public subcircle(int k):this(1,2
)
public subcircle(int i,int
j)
}static
void main(string
args)
", numa);
}public baseclass(int
i)
", numa);}}
class
childclassa : baseclass
", numb);
}public childclassa(int
i)
", numb);
}public childclassa(int i, int
j) :
base
(i)
", numb);}}
class
childclassb : baseclass
", numb);
}public childclassb(int
i)
", numb);
}public childclassb(int i, int
j) :
this
(i)
", numb);}}
class
demo
}
執行的結果如下:
--------------------------------結果----------------------------------使用base基類帶乙個引數的建構函式. value:
2子類帶有兩個引數的建構函式. value:4
----------------------------------------使用this
基類的無引數建構函式. value:
0子類帶有乙個引數的建構函式. value:
2子類帶有兩個引數的建構函式. value:4
--------------------------------結果--------------------------------
this只是呼叫本身,但是這樣是需要呼叫一次基類沒有參的建構函式,所以會多顯示一條「基類的無引數建構函式. value:0」。
base是呼叫基類的有引數建構函式。
C 建構函式裡的base和this的區別
class baseclass numa public baseclass int i numa class childclassa baseclass numb public childclassa int i numb public childclassa int i,int j base i ...
C 建構函式裡的base和this的區別
class baseclass numa public baseclass int i numa class childclassa baseclass numb public childclassa int i numb public childclassa int i,int j base i ...
C 建構函式裡的base和this的區別
this只是呼叫本身,但是需要呼叫一次基類無參的建構函式.base是呼叫基類的有引數建構函式。class baseclass numa public baseclass int i numa class childclassa baseclass numb public childclassa in...