本課簡介
本課目標為教導大家使用 Abstract Class 與 Abstract Method
當今天想要強迫某些衍生類別實作某些功能時
Abstract Method 就很符合需求
而 Abstract Class 又跟 Abstract Method 同進退
接下來就來看看是怎麼一回事吧!
教學影片
注意:影片有高畫質 720P 的選項,可以看得更清楚喔!
重點提示
1. C# 中的 method 主要分成兩個部分,宣告與內容。Abstract method 則是一種只有宣告,而沒有實作內容的一種特殊 method。
2. Abstract method 主要的目標是預先宣告 method,但是把實作的工作交給繼承的類別來做。
3. 透過使用 abstract method,就可以讓衍生類別具有共同行為,但是實際的做法則由各個類別自訂。
4. Abstract method 必須放在 abstract class 中,abstract class 是一種不能實體化 (不能被 new) 的 class。原因就在於 abstract method 並沒有定義內容,因此若被實體化出來,就無法執行任何動作。
相關資訊連結
MSDN - Abstract
https://msdn.microsoft.com/zh-tw/library/sf985hc5.aspx
期待小山大大的教學:))
回覆刪除謝謝支持 ^^
刪除感謝小山大大的教學!!
回覆刪除什麼時候再出新教學呢?
抱歉,我盡快 > <
刪除請問如果Monster不是Abstract class 可以實體化
回覆刪除那 Monster A = new Slime;
和 Slime A = new Slime;
有甚麼差別呢? 還有他們的使用時機是?
小山的教學平台
刪除小山的教學平台
2 年前
首先我想你應該有了解為甚麼可以寫
Monster monster = new Slime();
因為在物件導向中 Slime 你可以當成是一種 Monster
所以你當然可以把 Slime 當成 Monster 來「使用」
那這樣有甚麼好處?
最常見的好處就是
假設當你今天有一坨各式各樣的 Monster
可能有 Slime, Dragon... 之類各種不同子類別
但是你需要「統一」管理
例如統一存在一個 Array 裡面
你可以直接宣告一個 Monster 的 array
而不要分別宣告 Slime 的 array,Dragon 的 array,然後分開存
這種特性讓你在管理具有同一個父類別的物件時有極大的好處