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