有關C#抽象類
1.有關今天使用到工廠模式的的時候,用到抽象類和抽象函式,在用子類繼承的時候,出現的很多錯誤,無數次在內心裡罵了n次fuck!!!!
好吧 ,我是新人,我要沉住氣,好好學習,不管啦,和大家分享一下今天學到一些很關鍵的知識。
大學裡教的東西很少設計工廠模式,那今天師傅讓我用工廠設計模式作一個專案的時候,哇塞,捉襟見肘,以前也只是那麼隨意一看,沒有運用的到實際中,現在要用的時候感覺真捉急。
好在有個好師傅,循序漸進講述簡單工廠模式和工廠模式的區別之類的,現在理解了之後其實也就是針對一個原則的區別:關閉-開放原則,在構造軟體的過程中,對擴張開放,但是對修改封閉。工廠模式雖然程式碼顯得多,但很明顯做到這點。簡單工程模式,一旦要新增一個子類的時候,就要去人工手動的修改工廠類裡面的函式。但是在工廠模式裡面,我們只需要再新增一個工廠就好了。
說穿了,其實工廠模式是基於簡單工廠模式的。
上傳的簡單的計算器就是用工廠模式做的,相對比較簡單。我不和大家分析很多了,網上有很多分析的很好的,我這邊也有工廠模式的程式碼。
言歸正傳,有關子類和父類,我覺得今天收益非淺
就是為什麼有子類和父類的存在,為什麼會有抽象這個概念,我覺得是因為很多事物之間都有共同點的原因。
大學三年,其實用的不多,也沒能深刻體會到。
2.在抽象類裡面有很多抽象函式,這些函式為什麼抽象而不例項化直接呼叫呢?這是因為每個事物都有自己的類似的動作,但是又不相同。對於相似而又不相同的操作我們用抽象函式會方便很多很多。。。。
藍後將到抽象函式了,就引入兩個關鍵字:abstract和virtual
額,其實我主要用的是abstract,在父類裡宣告抽象函式,抽象函式是沒有方法體的,藍後在子類裡面重寫(override),而且只要在抽象類裡面定義成抽象函式的,在子類裡面的一定要重寫!!!
藍後虛擬函式是有程式碼的並明確允許子類去覆蓋,但子類也可不覆蓋,就是說可以直接用,不用重寫。用的有點不習慣啊。。。。
3.藍後偶就腦子抽筋的想到一個問題,如果在父類裡面有一個函式,不是抽象函式也不是虛擬函式,那麼你覺得如果在子類裡面重寫父類的這個方法呢?這個時候我們就用到new關鍵字,預設隱藏父類的同名函式,好的,俺還沒來的及做實驗,。。。。。要12點了,不行,俺得睡覺啦!!!晚安,各位IT界的同胞們。。。。。。
相關文章
- C#抽象類C#抽象
- c# abstract抽象類及抽象方法_繼承C#抽象繼承
- 有關“抽象類”和“介面”的異同之處?抽象
- c# abstract抽象類_非抽象類_virtual_虛方法_override重寫C#抽象IDE
- C# OOP:繼承,介面和抽象類C#OOP繼承抽象
- C#點滴 - 抽象類與介面區別C#抽象
- 介面、抽象類、普通類之間的關係抽象
- 抽象類、抽象欄位、抽象方法抽象
- 抽象方法和抽象類抽象
- 抽象類和抽象方法抽象
- 抽象類抽象
- PHP 抽象類繼承抽象類時的注意點PHP 抽象類繼承抽象類時的注意點PHP抽象繼承
- c# abstract抽象類與繼承類子類的建構函式_baseC#抽象繼承函式
- 關於抽象類和介面的初步理解抽象
- 關於抽象類與靜態類的初步瞭解抽象
- java抽象類和抽象方法Java抽象
- Java 抽象類Java抽象
- 14、抽象類抽象
- PHP 抽象類繼承抽象類時的注意點PHP抽象繼承
- 走進C# abstract,瞭解抽象類與介面的異同C#抽象
- TypeScript abstract 抽象類TypeScript抽象
- Python抽象類Python抽象
- 33_抽象類抽象
- 抽象類與介面抽象
- 抽象類VS介面抽象
- java之抽象類Java抽象
- 介面與抽象類抽象
- 介面和抽象類抽象
- 21-抽象類抽象
- 抽象類和介面抽象
- 介面的行為抽象和抽象類的行為抽象抽象
- C#介面、抽象類、普通類和繼承(子類與父類)都有其特定的用途和場景C#抽象繼承
- 抽象工廠模式(C#)抽象模式C#
- 關於抽象抽象
- JAVA類的頂層Type抽象和繼承關係Java抽象繼承
- Java關鍵字之abstract(抽象類的概念和使用)Java抽象
- Java 介面和抽象類是什麼,有什麼區別Java抽象
- C# array類的相關方法C#