1.Override 指的是「改寫、覆寫」,主要是用來讓繼承的 class 改寫掉從 base class 繼承到的行為。
2.使用 Override,首先必須要先在繼承的 class 中定義一個名稱與參數皆相同的method,然後在原本的 method 前加上「virtual」關鍵字,而新的 method 前加上「override」關鍵字。
注意:
1.使用base class變數還是可以呼叫到被override的method
2.被override的method記得加上virtual
3.Override的method名稱和參數型別都要跟被override相同
有一間書店,最近在進行大清倉。除了百科全書類的書之外,只要是書類幾乎都賣 200 元 (百科全書類 500 元)。請你幫書店老闆撰寫一個計算書類價格的系統。
必須符合下列條件:
有一個叫做 Book (書) 的 class,其中包含一個 public property,和一個 public method。該 property 的名稱為 BookName (書名)。method 則為「ShowPrice (顯示價格)」,會傳回一個 string,內容是書名與價格。例如:「寫扣的藝術 200 元」。
有另一個 class 叫做 Encyclopedia (百科全書),繼承自 Book。它包含一個 method,也叫做「ShowPrice (顯示價格)」。這個 method 必須 override Book 的 ShowPrice,並且顯示的價格要是 500 元。
寫好之後可以自行建立一個 Form,加上一個按鈕,在按鈕的行為中用下面這段程式碼測試。
Book a = new Book();
Book b = new Encyclopedia();
a.BookName = "寫扣的藝術";
b.BookName = "大英百科全書";
MessageBox.Show(a.showPrice());
MessageBox.Show(b.showPrice());
執行結果為:
結語:花了一點時間理解消化,不急著趕出來而是慢慢消化在呈現,如有錯誤請跟小弟說一下我會趕快更改