抽象方法抽象類 靜態類靜態方法靜態成員

一 抽象類和抽象方法

用abstract修飾的方法稱爲抽象方法

含有抽象方法的類必須定義爲抽象類

使用場景: 爲了描述抽象的概念,不予具體的事物相關聯

只是當做派生類的基類來使用

抽象的特徵:

抽象方法只做聲明,不能包含具體實現

抽象方法旨在被繼承之後使用,所以不能用

private來修飾

2,抽象類不能被直接實例化(不能用new創建)

3,抽象類可以沒有抽象成員,但是抽象成員

只能在抽象類中

4,如果抽象類的子類不是抽象類,那麼必須要實現

該抽象類中的所有的抽象方法,如果子類是抽象類,

可以重寫也可以不重寫

抽象方法和虛方法的區別:

抽象方法是特殊的虛方法

1,抽象方法必須在抽象類

2,抽象方法在類中不能有實現體,虛方法必須有

3,抽象方法在非抽象子類中必須被重寫,而虛方法在子類中可以實現

也可以不重寫

//Person.name = "小米";

//Person.Eat("香蕉");

二,靜態成員

1,用static 關鍵字修飾的成員 只能由類來調用

函數所有行爲對派生類的影響都一致的時候,可以定義爲靜態的

靜態成員就相當於一個帶有命名空間的全局函數

不需要實例化 而且不需要this指針,和實例(對象)無關

調用方便,加強肋的安全性 可以封裝算法 當做工具來使用

有助於實現一些設計模式有助於封裝

靜態類

同static修飾的類

靜態類中只能包含靜態成員和construction修飾的常量

靜態類不能實例化

靜態類默認密封,不能用sealed修飾

不能被繼承

有 靜態構造方法,但靜態狗仔方法必須是無參的

該方法第一次使用靜態類調用靜態成員時會執行

Student.name = "狗賊";

Student.study();

Console.WriteLine("num");

靜態構造方法

可以用來初始化靜態成員數據,或用於只執行一次的特定操作

在創建一個實例,第一次使用靜態成員時,自動執行

不帶 訪問修飾符,不帶參數

不能重載

 

里氏轉換

as ( )

 

 

部分代碼

 

abstract class A

{

public abstract void Mi();

}

abstract class B : A

{

public abstract void ni();

}

class C : B

{

public override void Mi()

{

throw new NotImplementedException();

}

public override void ni()

{

throw new NotImplementedException();

}

}

class Beauty

{

public static int age;

public static void Buy()

{

Console.WriteLine("大仙");

}

}

public sealed class time

{

public static int firsttime;

 

static time()

{

firsttime = 5;

Console.WriteLine("拜拜了您哪");

}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章