evernote export
.................................. c#的抽象類 ...................................
抽象類 --
abstract
[ absi抓
t] -- 虛方法:
virtual
[ ver
求] -- 重寫:
override
[ over
raid
]:作用
規定某些類都必須具有某種行為,可以定義乙個父類,但是這種行為有各不相同,所以提出了 抽象類;
它代表一類物件所具有的公共屬性或公共方法
[要建立 馬,鳥,狗類,規定都有吃東西這個方法,但是不同的動物有不同的吃法,所以寫不了方法實體,只能定義為抽象方法]
抽象類規定某些類都必須具有行為的模板,
可以定義建構函式,但不能被例項化;可以有變數,實方法 和 虛方法
抽象屬性,抽象方法只存在於抽象類中,但是抽象類中不一定有抽象成員
抽象方法abstract
沒有方法體的方法,所以必須被重寫;
虛方法virtual
標記可能,但不是必須被重寫的方法,所以必須帶方法體,
抽象方法和虛方法
訪問型別不能是private;屬於類的成員,預設都是
private
,所以必須宣告其型別;
子類繼承抽象類必須重寫抽象類中所有的抽象方法和抽象屬性,不然要將該類定義為抽象類;
重寫方法 override
只能重寫用 abstract,virtual,override 修飾的方法 [ 重寫不能修改方法的定義,方法是什麼訪問型別,返回值型別,重寫方法也一樣 ]
abstract
class
basetest
// 抽象類
,public
abstract
intfun
(int
ab,
intaba);
public
virtual
intfun2
()
// 虛方法,要有{}
}class
basetest2
: basetest
// 抽象類被繼承
public
override
intfun
(int
a, int
b) }
abstract
class
basetest3
:basetest
.................................. c#的密封類 sealed ...................................
使用 sealed
會提高執行效率,因為類不用擔心被繼承,子類中的方法不用擔心被重寫
密封類:
如果有些類不想被繼承,
就定義為 密封類
能被繼承,所以類中的
virtual
方法會自動轉為 非
virtual
,即 virtual
不起作用
密封方法:
子類中某些
override
方法不想再被[ 子類的子類 ]重寫,就定義為 密封方法
sealed
override
一定是連用,只能出現在子類中
abstract
class
aclassb:
a}sealed
classc:
b}.................................. c#的部分類 partial ...................................
同一命名空間下不允許出現相同的兩個類
部分類:
partial
+ classname
1. 必須在同乙個命名空間下使用
partial修飾2
. 部分類其實就是乙個類,編譯時會把他們編譯成乙個類
3. 在乙個夥伴類中定義的變數能在另一夥伴類中訪問 [
就是同乙個類
]partial
class classa
partial
class classa
classa ca = new classa();ca.
c= ca.
i+ ca.
j;console
.writeline(ca
.c.tostring());
出處:
抽象類和密封類
基本概念 包含抽象方法的類叫做抽象類。抽象方法被abstract修飾,類也要由abstract修飾。抽象類中可以有抽象方法,也可以有非抽象方法。抽象類不能建立例項物件 不能new抽象類。抽象類中可以沒有抽象方法,但是抽象方法一定在抽象類中。因為抽象類不能被例項化,抽象方法不能被實現。抽象類和普通類的...
C 抽象類 密封類及類成員
1.抽象類和類成員 使用 abstract 關鍵字可以建立必須在派生類中實現的不完整的類和類成員。例如 public abstract class a 抽象類不能例項化。抽象類的用途是提供多個派生類可共享的基類的公共定義。例如,類庫可以定義乙個作為其多個函式的引數的抽象類,並要求程式設計師使用該庫通...
抽象類 密封類及類成員(C )
使用abstract關鍵字可以建立不完整且必須在派生類中實現的類和類成員。使用sealed關鍵字可以防止繼承以前標記為 virtual 的類或某些類成員。通過在類定義前面放置關鍵字 abstract,可以將類宣告為抽象類。例如 public abstract class a 抽象類不能例項化。抽象類...