請看需求概要:兩個學生a和b,對於一道題進行了解答,要列印出他們對這兩道題的解答答案。
最菜鳥的**應該是定義乙個類,裡面寫兩個方法,分別在各自方法中具體實現列印題目和答案,這個就不附上了,看看稍稍改進了點的**:
using system; using system.collections.generic; using system.text; namespace 模板方法模式一級 } //金庸**考題試卷 class test***** } class test*****a : test***** } class test*****b : test***** } }
這裡用到了繼承,從工作量上,將列印題目的方法寫在父類裡,子類繼承後直接乙個base.testquestion()就可實現列印題目,少了重複的打題目的**。
可是看看,是不是還有重複的地方。恩,「答案:"這個單詞在**中出現了兩次並且只是跟在其後的有一點不同罷了。於是又產生了以下的**:
using system; using system.collections.generic; using system.text; namespace 模板方法模式二級 } class test***** protected virtual string answer1() } //學生甲抄的試卷 class test*****a : test***** } //學生乙抄的試卷 class test*****b : test***** } }
看看是不是又減少了**量,從而減少了工作量。而其中只是父類中使用了虛函式,在子類中再具體實現而已。
搞程式設計的孩子們都是朝著乙個目的進行的:在**安全沒什麼影響的情況下,向著最少量**的方向前進。我們就不用敲嫩多**,手疼~
利用虛函式和繼承之模板模式
請看需求概要 兩個學生a和b,對於一道題進行了解答,要列印出他們對這兩道題的解答答案。最菜鳥的 應該是定義乙個類,裡面寫兩個方法,分別在各自方法中具體實現列印題目和答案,這個就不附上了,看看稍稍改進了點的 using system using system.collections.generic u...
虛繼承和虛函式繼承
虛繼承主要用於菱形 形式的繼承形式 虛繼承是為了在多繼承的時候避免引發歧義,比如類 有個就是a,繼承了 c也繼承了 當 多繼承 時,就會有歧義產生了,所以要使用虛擬繼承避免重複拷貝。虛函式繼承是解決多型性的,當用基類指標指向派生類物件的時候,基類指標呼叫虛函式的時候會自動呼叫派生類的虛函式,這就是多...
繼承和虛函式
摘要 本文從5段 例項出發,通過類中類的普通繼承,類的虛繼承,類的多重繼承,多個虛函式類的普通繼承 虛繼承與多重繼承,幾個交叉概念,詳細的闡釋了繼承 虛函式與虛繼承的基本概念,深入剖析了繼承於虛繼承的區別於聯絡。exp.001 虛繼承 cpp view plain copy include clas...