C 抽象類和虛方法

2022-01-15 02:50:23 字數 1319 閱讀 1768

抽象類與抽象方法:

1.使用關鍵字abstract修飾的類,稱為抽象類.

2.抽象類只是用到乙個類所具有的行為,不能單獨通過建立物件來使用.使用new是錯誤的.

3.抽象類中可以有抽象方法,也可以沒有任何抽象方法.

4.抽象類不能是靜態的(static)或者密封的(sealed)

抽象方法的概念與使用要點:

1.在抽象類中使用abstract修飾的方法,稱為抽象方法.

2.抽象方法必須在抽象類中定義,不能再普通類中使用.

3.抽象方法只能是乙個方法的申明,不能有任何的方法體.

4.抽象方法僅僅表示乙個應該具有的行為,具體實現由子類實現.

5.抽象方法在子類中被實現(重寫)必須使用關鍵字override.

6.子類必須重寫父類的所有抽象方法,除非子類本身也是抽象類.

多型:不同物件,接收相同訊息,產生不同的行為,稱為多型。

使用繼承實現多型:

父類中必須有抽象方法或虛方法.

子類必須重寫父類中的抽象方法或虛方法.

子類物件必須轉換成父類物件去使用.

lsp:李氏替換原則:

1.子類的物件能夠替換其父類.

2.父類物件不能替換子類.

3.父類的方法都要在子類中實現或者重寫.

is與as操作符:

is,檢查物件是否與指定型別相容,如果轉換失敗程式中斷.

as 用於在相容的引用型別之間執行轉換,轉換失敗返回null.

抽象方法僅僅是宣告,沒有任何實現內容。

抽象方法必須在子類中重寫以後才有使用價值.

針對抽象方法問題引出:

如果需要在父類中提供乙個方法,該方法有自己的方法體,子類根據自己的需求決定是否重寫該方法,而不是必須重寫.

父類方法定義成:virtual,子類可以重寫也可以不重寫.

虛方法如同抽象方法一樣,可以實現多型.

子類沒有重寫虛方法時,直接呼叫父類的虛方法.

構造方法,用來物件建立過程中初始化。

equals預設支援的是引用相等,想讓物件相同,重寫equals

虛方法和抽象方法

用virtural修飾,要有方法體,哪怕是乙個分號,可以被子類override,除了密封類都可以寫

用abstract修飾,不允許有方法體,必須被子類override,只能在抽象類中.

關於equals()虛方法:

對於字串和值型別能夠自動比較是否相等.

對於物件比較必須重寫後才有意義.

關於tostring()虛方法:

預設返回該物件的完全限定型別名稱,可根據需要重寫.

而對於值型別,因為重寫的該方法,則返回變數值的字串表示.

C 抽象類和虛方法

抽象類 抽象類使用關鍵字abstract修飾,是一種特殊的類,不能例項化物件,且不能直接呼叫 區分靜態類 抽象類中可以定義抽象方法 也用關鍵字abstract修飾 也可不定義任何抽象方法,但抽象方法必須定義在抽象類裡 抽象方法只有方法宣告,不含有任何方法體,如 public string getna...

虛方法,抽象類 ,介面

抽象類不能被例項化 只能宣告方法,不能實現,只能有他的 是乙個隱式的虛方法 抽象類裡的方法不能是私有的 如果抽象是私有的,那麼他的子類訪問不了它 在抽象方法中使用static和virtual修飾符是錯誤的 在靜態屬性中使用abstract是錯誤的 abstract方法只能在抽象類中宣告 而virtu...

抽象類與虛方法

其實這是哲學的思維方式,所謂哲學就是建立事實基礎上,是人類對世界的思考和認識。要理解抽象類就必須要有一定的程式設計經驗,就好像要理解哲學就需要有一定的生活經驗。跟乙個沒有大量程式設計經驗的人將設計模式那也是扯蛋!所以作為乙個新手,特別是沒有物件導向程式設計經驗的來說,不理解抽象類是很正常的,等你有了...