1樓:
返回型別一致,引數型別一致,直接呼叫就可以
請教c#有參建構函式繼承的問題
2樓:老游擊隊員
注意看父類a的構造方法是帶一個引數的int型所以你baes(no);的時候會根據你no的型別選擇父類的建構函式,如果沒有找到匹配型別就報錯,
例如:你base(s),s是string型別,而父類裡面又沒有傳string型別為引數的建構函式
,那你可以在父類 過載 一個string型別為引數的建構函式,父類a 就這樣寫
class a
public a(string _no)
}class b : a}
3樓:曈伊
class b:a}
c#如何重寫帶引數的建構函式?
4樓:匿名使用者
重寫是發生在繼承的時候的
1、必須是在繼承裡,
2、方法名、返回值型別、引數個數和引數型別 都必須相同3、派生類重寫的方法的訪問許可權不能低於基類的許可權比如說上面那個是父類
public class mysqlparaminfo:sqlparaminfo
}如果子類有自己的建構函式,那麼父類的建構函式就不會執行了。當子類沒有建構函式時才會呼叫父類的建構函式來構造物件。
5樓:匿名使用者
父類 public class a}子類
public class b : a
}必須要有 base(key) 否則無法編譯通過
6樓:匿名使用者
直接按照基類的引數個數、型別寫一個子類的構造引數,不去呼叫base的構造引數,全部在子類中實現,就行了。
7樓:匿名使用者
public class sqlparaminfo//無引數建構函式
//帶引數建構函式 1
public sqlparaminfo(string paramname, object paramvalue)
//帶引數建構函式 2
public sqlparaminfo(string paramname)
public string name
get}public object value
get }}
8樓:荔菲彭澤
你是指override?
子類不能「重寫」基類的建構函式,只能「呼叫」基類的建構函式
9樓:匿名使用者
額,看錯題了,算我沒說
10樓:
重寫?還是過載?
建構函式是不能重寫的
c#如何用建構函式來傳遞引數
11樓:匿名使用者
例如你的主窗體中有一個按鈕,在他的單擊事件裡寫入:
f3 f = new f3(this.textbox1.text);
f.show();
this.hide();
在f3的窗體**中寫入:
private string texts;
public f2(string texd)private void f2_load(object sender, eventargs e)
關於c#中建構函式的繼承的問題。
12樓:
1、建構函式不繼承,派生類會自動呼叫基類建構函式。
2、若類內沒有定義建構函式,系統會自動隱式生成一個不帶引數的建構函式,比如定義一個類:
public class a
可以理解為它已經存在一個如下的建構函式
public class a
}3、派生類建構函式自動呼叫基類的不帶引數的建構函式,注意下面的格式public class b:a
}相當於
public class b:a
}3、基類中帶引數的建構函式必須顯式呼叫,比如:
public class a
public a(string str)
}public class b:a}
13樓:匿名使用者
建構函式是不能被繼承的。。。。
base的作用,
public class a
public a(string str)
}public class b:a
public b(string stra,string strb):base(stra)
}//用下面兩句跟下程式就知道了。。。。
b objb0=new b("class b");
b objb1=new b("class a","class b");
14樓:匿名使用者
建構函式不繼承。
base是在當前類中如果想呼叫父類函式或屬性時使用。
15樓:
base 關鍵字用於從派生類中訪問基類的成員:
呼叫基類上已被其他方法重寫的方法。
指定建立派生類例項時應呼叫的基類建構函式。
基類訪問只能在建構函式、例項方法或例項屬性訪問器中進行。
從靜態方法中使用 base 關鍵字是錯誤的。
16樓:專注於社會學
base.函式
呼叫基類
如何繼承帶有引數的建構函式
17樓:文件類共創空間
參考**:
#include
using namespace std;
class base1
~base1()
};class base2
~base2()
};class derive:public base1,public base2
void show()
};int main()
測試結果:
base1 created
base2 created
m is 1
n is 2
l is 3
base2 deleted
base1 deleted
請按任意鍵繼續. . .
18樓:匿名使用者
直接繼承這個帶有引數的建構函式所屬的類
比如 public class myframepublic myframe(int a,int b){}}class testframe exends myframe這樣就可以在testframe中呼叫myframe中的建構函式了
c#子類繼承父類,在呼叫子類的建構函式的時候首先會呼叫父類的建構函式
19樓:匿名使用者
回答者: jeogegxs說的對
子類一定會呼叫父類的構造函
補充一點:
類可以有多個建構函式.
在子類呼叫建構函式後加:base(引數...)可以呼叫指定函式如果不寫,會預設呼叫父類無參的建構函式
20樓:匿名使用者
執行子類建構函式不可能不執行父類的建構函式。
當你例項化一個子類物件時,他會先執行system.object中的建構函式,然後再執行父類的建構函式,最後執行子類的建構函式。
要不執行父類的某個建構函式,只有你在子類中過載一個新的建構函式。
21樓:
給父類增加一沒用的建構函式
public class parent
public parent(int i){}}public class child:parent}
22樓:gis冰淚兒
不可能不呼叫父類的建構函式,建構函式是先呼叫父類的也就是基類的,即由內而外呼叫。解構函式是先呼叫子類的解構函式再一次呼叫父類的解構函式,即由外向內
23樓:匿名使用者
試試覆蓋父類的建構函式。
c# 類的繼承 建構函式這個是什麼意思?
24樓:匿名使用者
你去看下 繼承 的概念和例子。
public class partydinner:dinner 表示定義的類partydinner 是繼承自 dinner這個類。
dinner這個類的建構函式是 numberofpeople()public partydinner(int numberofpeople):base(numberofpeople) 表示partydinner的建構函式繼承自dinner類的建構函式 numberofpeople()
25樓:匿名使用者
base(numberofpeople)表示呼叫父類dinner的建構函式。
c#類繼承:如果一個類要繼承一個建構函式有引數的類,且繼承的子類要實現無參建構函式的呼叫,這能否實現
26樓:匿名使用者
可以實現,你在基類也就是父類上寫一個無參的建構函式,這樣父類就有兩個建構函式了,這樣子類就可以實現無參的建構函式的呼叫了
27樓:丠風
構造方法不能被子類繼承,只能通過base呼叫
28樓:
能啊,但是叫做呼叫不叫繼承,你把基類(父類加個預設的建構函式就可以了);預設建構函式為無參建構函式
29樓:匿名使用者
你是想要這種效果嗎
class base
class extend : base}
30樓:匿名使用者
可以顯示的呼叫~~~可以實現~~
c中如何定義string陣列,C 中如何定義string陣列?
c 中定義string陣列方法 1 定義一維陣列 string parm new string 2 一維字串陣列,如果提供了初始值設定項,則還可以省略 new 運算子 string par3 擴充套件資料 c 中其他型別陣列定義方式介紹 1 定義一維int陣列 int numbers new int...
c衍生類A繼承自base類,A如何訪問base的方法method1()
這樣可以嗎?就是直接使用?可以的,不過也可以在方法前面加個base.這樣比較清晰 如果本地從寫了這個方法,這樣呼叫的是本地的還是基類的?本地的 如果是多重繼承,如何判定是使用哪個類的方法?把複雜問題簡單化,多重繼承可以看做多個單層繼承,即本地沒有重寫或覆蓋,就是本地的,否則就是基類的,基類再判斷,即...
c中型別如何強制轉換,c 中如何把string型別轉換為double型別?
特特拉姆咯哦 方法 1 int適合簡單資料型別之間的轉換,c 的預設整型是int32 不支援bool型 2 int.parse string sparameter 是個靜態方法,引數型別只支援string型別 3 convert.toint32 適合將object型別轉換為int型 4 conver...