3--------------->>學習c#過程中遇到的關於建構函式和繼承的問題<<--------
using system;
using system.collections.generic;
using system.text;
class car : vechicle
}static void main(string args)}}
問題如下:
1:建構函式 是不是就是利用方法對類中的域的進行初始化 ?
2:: public vechicle()
public vechicle(int w, float g)
public vechicle() 是否表示對下面的這個建構函式的宣告
public vechicle(int w, float g)
3:關於繼承的問題
既然car 繼承了vechicle 是否可以把car類中的建構函式改為
由 class car : vechicle
}改為:
class car : vechicle
}----------答案》
public vechicle() 是否表示對下面的這個建構函式的宣告
public vechicle(int w, float g)
這個類應該是兩個構造,乙個構造是空的
1,建構函式, 可以對類例項的域進行初始化,也是對類例項成員進行初始化很好的地方,建構函式返回類的乙個例項。
2, public vechicle()
public vechicle(int w, float g)
這是兩個不同的建構函式(過載)
可以這樣建立類的例項:
vechicle vechicle1=new vechicle();
vechicle vechicle2 = new vechicle(1,1.0);
3,當然可以.而且應該這樣。
建構函式就是在建立類物件的時候呼叫,用來初始化類中的字段以及完成一些呼叫等工作
3:關於繼承的問題
既然car 繼承了vechicle 是否可以把car類中的建構函式改為
由 class car : vechicle
}改為:
class car : vechicle
}這樣改是非常好的!!!
public vechicle() 是否表示對下面的這個建構函式的宣告
public vechicle(int w, float g)
是兩個不同的建構函式
乙個沒有引數並且不做任何初始化工作
另乙個接受兩個引數,並對類中的字段進行初始化,兩個函式之間沒有什麼直接的聯絡
對這句話如何理解:
在c#中,派生類從它的直接基類中繼承成員:方法、域、屬性、事件、索引指示器。除了建構函式和析構函式 ,派生類隱式的繼承了直接基類
的所有成員
這並沒有什麼衝突啊,建構函式和析構函式 不能被繼承,但可以被呼叫。
建構函式(constructor)包括例項建構函式和靜態建構函式。
建構函式與類名相同,且不能有返回值。例:
class testclass
static testclass() //靜態建構函式:只能訪問靜態成員,用於初始化靜態成員
}類的靜態成員屬於類所有,不必生成例項就可以訪問,它是在載入包含類的應用程式時建立的,
但靜態方法不能訪問類的例項變數和方法。通常,靜態變數是在定義時就賦初始值的。
類的例項成員屬於類的例項所有,不建立例項物件就無法對其進行訪問,例項成員可以訪問類的
靜態成員和其它例項成員。
呼叫基類的析構函式:
class a
}class b
}
C 學習過程中遇到的問題
string sqlcmd1 select table name from user tables where table name like tablename oracleparameter op new oracleparameter tablename this.loadkey.text.t...
關於執行C 程式的過程中遇到的問題小結
一 編譯是指對乙個工程下面所有專案進行編譯 而debug是對工程下的某個專案進行編譯 如果要指定對某個專案進行編譯,則需要將該專案設成 設為啟動專案 二 關於在編譯乙個程式的過程中遇到的乙個問題 錯誤如下 1 已啟動清理 專案 chess,配置 debug win32 1 正在刪除專案 chess ...
C 中對繼承過程中構造函式呼叫的理解
1 例項化派生類時,需要先呼叫基類中的建構函式 2 基類中沒有定義建構函式,則系統會定義預設無參建構函式.如果新增有參建構函式,則預設的無參建構函式將會被覆蓋,3 派生類例項化時,可以通過base指定需要呼叫的建構函式,呼叫無參建構函式,可省略 base clerk基類 class clerk pu...