【中低階級】-[物件導向]-三大特性-繼承

更新 發佈閱讀 6 分鐘

二、繼承(inheritance)

  繼承就是假如A(子)類別去繼承B(父)類別,那麼A(子)類別可以直接去使用B(父)類別非私有的屬性和方法,但是A(子)只能繼承一個B(父)類別ㄛ!

  一樣的道理可以比喻為:爸爸跟小孩之間的關係。小孩可以去運用爸爸的資源,但是爸爸的工作屬於他自己的不能跟小孩一起分享,雖然小孩可以使用爸爸的資源,但是理論上只會有一個爸爸,不可能有其他爸爸的存在。

在繼承當中父、子類別有個稱呼要知道一下
1.父類別又稱「基底類別」(Base Class)
2.子類別又稱「衍生類別」(Derived Class)

通常我都用父類別、子類別來稱呼。子類別除了可以使用父類別的屬性和方法外,還可以擴充與修改父類別的行為哦!會用到之後會再提到override(覆寫)相關的功能,例如:virtual(虛擬)、abstract(抽象)等等相關宣告會用到的詞。

  也就是說小孩可以直接學習爸爸的能力外,還可以擴充自己的能力,甚至是將爸爸的能力學好後再優化變成現在的資訊科技化,譬如:爸爸會將客戶資料一筆一筆寫入到筆記本中,那小孩就學會這能力後又更上層樓直接建立資料庫做管理,這樣在管理上就方便多了。這樣是不是小孩的能力擴充了一項技能就是建立資料庫,並且也修改了爸爸平常用紙筆傳統式紀錄變成到電腦上做key in的動作了呢?


好啦!理論太枯燥乏味直接來看看程式好了,到底是怎麼運行的呢?

Step1建立父類別
Step2建立子類別
Step3 介面設計 與 主程式撰寫
Step4 程式執行

繼承所呈現的語法會是

class B
{
  父類別的敘述;
}
class A:B
{
  子類別A繼承父類別B的敘述;
}

來看一下實際例子

實際例子1.無使用建構函數

vocus|新世代的創作平台
vocus|新世代的創作平台
vocus|新世代的創作平台
vocus|新世代的創作平台
說明:
1.【ClassAnimal是父類別】:把共同有的「屬性欄位」與「方法動作」都在這裡做宣告
(1)第13-14行:動物共同會有的動物名字name、動物年齡age,因為未使用建構函式,因此在宣告時就做公開public大家都可以使用
(2)第15行:想交給子類別去做設計要做什麼動作又必須要有動作時可以使用abstract(抽象),看到abstract(抽象)就是子類別就一定要去做覆寫,因此使用abstract(抽象),就要將這個父類別前面多加一個abstract(抽象)的修飾詞。
(3)第17-20行:父類別做的事就是傳回字串(顯示字串)「開始說話」

2.【classDog是子類別】:因為要繼承父類別,因此在classDog後多加入「:ClassAnimal」
(1)第11行:這邊的宣告是屬於classDog的欄位,假若有另外建一個classCat的子類別,它的父類別一樣也是ClassAnimal的話,classCat就無法使用classDog類別的kind欄位
(2)第13-16行:這是要去覆寫父類別的Action()方法,classDog類別做的事就是傳回字串(顯示字串)「我正在走路」

3.【主程式】:先在介面上新增一個button和label,觸發方法為按下此button(顯示繼承文字的按鈕)後執行程式
(1)第63行:建立一個classDog類別格式的物件,命名為dog
(2)第64-66行:那麼dog可以使用它的父類別所定義的欄位(也就是name、age),也可使用它自己所定義的欄位(kind)
(3)第67-68行:利用label顯示結果,dog.Talk()、dog.name、dog.age是因為dog有繼承父類別,因此可以使用父類別的方法。dog.kind是屬於dog本身定義本來就可以使用,dog.Action()雖然有繼承父類別的方法但是因為需要覆寫,引此取得的資料會是dog類別中所做的事。

4.【執行結果】:可以跟主程式label所寫的內容相對應。


實際例子2.有使用建構函數

vocus|新世代的創作平台
vocus|新世代的創作平台
vocus|新世代的創作平台
vocus|新世代的創作平台
說明:
1.【ClassAnimal是父類別】:
(1)第30-33行:變動的地方只有欄位部分改成建構函數的參數,裡面的敘述(也就是大括號{ } )可以不用寫
(2)其他abstract抽象方法和Talk()這個方法就不用變

2.【classDog是子類別】:
(1)第28-33行:因為要接父類別的參數,所以在使用建構函數的時候語法為:
public 類別名稱(參數):base(父類別的參數)
那麼父類別的參數變數就把它一模一樣寫過來,接著再將這些參數放入到子類別的參數中去也是要寫一模一樣的參數哦!若想要在此類別增加其他參數也可以,就如同string Kind。
(2)第24-26行:由於想要將參數在此類別中使用,那就在此做宣告,便可以在第28-33行取得傳入的內容值
(3)第38行:Action顯示內容部分呢!就可以從取得的內容值賦予給此類別宣告的變數上直接做使用即可

3.【主程式】:
由於內容值都要傳到類別去使用,因此主程式只要將內容值輸入到建立物件的類別參數中後,接下來就動用方法即可,不用還要再個別輸入內容值,故主程式會簡短許多。

4.【執行結果】:可以跟主程式label所寫的內容相對應。


※可以先從父類別看到程式執行結果後,再從執行結果往回看到父類別,這樣應該就可以更懂的是怎麼樣運行的。自己也一定要操作看看ㄛ!多操作幾遍多看就會熟了。


參考資料:
1.[C#] 物件導向三大特性
2.C# 和 中的繼承 .NET
3.C# 類別的繼承


留言
avatar-img
橙果杏的沙龍
26會員
43內容數
Hello~ Welcome to my blog~❤ 這邊會分享我在程式這條道路中的學習與成長, 過程中從而了解自己的不足,再學習。 希望透過分享的方式, 也讓正在學習程式的夥伴們一起學習, 我們一起加油吧~ 「彼此都會成為彼此之間的影響力」(´,,•ω•,,)♡ ❣
橙果杏的沙龍的其他內容
2024/07/30
一、什麼是WinSocket? 也就是大家常說的WinSock全名為Windows Sockets API (WSA),它會透過TCP/IP通訊協定來做網路的通訊,會用在Windows操作系統上來開發網路應用的API(應用程式介面)   二、WinSocket用在哪裡?   Socket可以
Thumbnail
2024/07/30
一、什麼是WinSocket? 也就是大家常說的WinSock全名為Windows Sockets API (WSA),它會透過TCP/IP通訊協定來做網路的通訊,會用在Windows操作系統上來開發網路應用的API(應用程式介面)   二、WinSocket用在哪裡?   Socket可以
Thumbnail
2024/06/29
當我們架好站、WebService測試完,接著就是測試區域網路連線啦~
Thumbnail
2024/06/29
當我們架好站、WebService測試完,接著就是測試區域網路連線啦~
Thumbnail
2024/06/20
前面已經安裝好IIS後,並且也新建站台了,那麼接下來這篇就會分享如何使用它
Thumbnail
2024/06/20
前面已經安裝好IIS後,並且也新建站台了,那麼接下來這篇就會分享如何使用它
Thumbnail
看更多
你可能也想看
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
在同事的推薦下收聽了〈王麗芳的親子觀點〉podcast頻道,一聽下去還真是無法停下來,麗芳老師在教養孩子上的觀點非常明確且充滿著力量,但這力量的背後是滿滿的教育與愛,因為希望孩子能長大成獨立自主且具有思維思辨能力的人。這一點是我也非常認同、也在教養孩子路上一路在學習的目標。
Thumbnail
在同事的推薦下收聽了〈王麗芳的親子觀點〉podcast頻道,一聽下去還真是無法停下來,麗芳老師在教養孩子上的觀點非常明確且充滿著力量,但這力量的背後是滿滿的教育與愛,因為希望孩子能長大成獨立自主且具有思維思辨能力的人。這一點是我也非常認同、也在教養孩子路上一路在學習的目標。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
有時我實在也不確定,是孩子本來就會做這些事情,還是教育真的有用。難以梳理這個問題,只好找孩子的爸細細回想:在小孩脫離對媽媽的依附關係後,朝夕相處,真正陪在自學生身邊的爸爸,究竟有沒有在小孩身上做些什麼。 「嗯?這怎麼解釋?」 「說個例子來聽聽?」
Thumbnail
有時我實在也不確定,是孩子本來就會做這些事情,還是教育真的有用。難以梳理這個問題,只好找孩子的爸細細回想:在小孩脫離對媽媽的依附關係後,朝夕相處,真正陪在自學生身邊的爸爸,究竟有沒有在小孩身上做些什麼。 「嗯?這怎麼解釋?」 「說個例子來聽聽?」
Thumbnail
「體制外革命路線」與「體制內改革路線」|我不停掙扎拔河中! 我有一個活潑好動的小二男娃,我個人覺得好難教, 我一直在摸索育兒方式,我常常用自古以來的方式, 或我覺得該按部就班,照我要的方式來加附在兒子身上, so他很反彈,一直不停和我對抗著! 我覺得學生要有學生的本分,回家就先把學校作業完成, 老
Thumbnail
「體制外革命路線」與「體制內改革路線」|我不停掙扎拔河中! 我有一個活潑好動的小二男娃,我個人覺得好難教, 我一直在摸索育兒方式,我常常用自古以來的方式, 或我覺得該按部就班,照我要的方式來加附在兒子身上, so他很反彈,一直不停和我對抗著! 我覺得學生要有學生的本分,回家就先把學校作業完成, 老
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
探討師生關係與親子關係的異同,指出大人對孩子的期望與對待方式,以及孩子在這種關係中的角色。建議大人可以用生態觀察的角度看待孩子的成長,接受並欣賞每一個孩子獨特的樣貌。
Thumbnail
探討師生關係與親子關係的異同,指出大人對孩子的期望與對待方式,以及孩子在這種關係中的角色。建議大人可以用生態觀察的角度看待孩子的成長,接受並欣賞每一個孩子獨特的樣貌。
Thumbnail
每個孩子的到來 多數都攜帶了可以療癒父母的基因 有的父母如果有足夠的智慧,便可以識別出來 通常這些所謂可以療癒父母的基因 很可能都是父母不願意包容自己的部分 所以當這些特質在孩子身上展現出來的時候 父母就會把這種自我批判投射到孩子身上 但是往往我們對待自己的孩子 會更有一種 重新經驗自己童年的感
Thumbnail
每個孩子的到來 多數都攜帶了可以療癒父母的基因 有的父母如果有足夠的智慧,便可以識別出來 通常這些所謂可以療癒父母的基因 很可能都是父母不願意包容自己的部分 所以當這些特質在孩子身上展現出來的時候 父母就會把這種自我批判投射到孩子身上 但是往往我們對待自己的孩子 會更有一種 重新經驗自己童年的感
Thumbnail
PAC模型 P代表Parent (父母) A代表Adult(成人) C代表Child(兒童) 這是三種說話的方式,簡單的舉例來說,#父母 的說話方式就是命令、訓斥和挑剔。「你要...」「你應該...」「你怎麼那麼...」 而#成人 的說話方式則是就事論事,客觀說明,像是「因為...,所以我認為」「
Thumbnail
PAC模型 P代表Parent (父母) A代表Adult(成人) C代表Child(兒童) 這是三種說話的方式,簡單的舉例來說,#父母 的說話方式就是命令、訓斥和挑剔。「你要...」「你應該...」「你怎麼那麼...」 而#成人 的說話方式則是就事論事,客觀說明,像是「因為...,所以我認為」「
Thumbnail
#每個孩子都是獨一無二的 每個爸媽應該都會試想過 自己的孩子長大後的模樣和性格 我和老婆也不例外 常會去聊到不曉得兒子以後會是怎麼樣 會是什麼個性 難免在教育的過程中 會去添加一些我們想要的標籤在孩子身上 希望他成為我們想要的模樣 有時候是不經意的 有時候是確實也會稍微有點刻意 我有個朋友
Thumbnail
#每個孩子都是獨一無二的 每個爸媽應該都會試想過 自己的孩子長大後的模樣和性格 我和老婆也不例外 常會去聊到不曉得兒子以後會是怎麼樣 會是什麼個性 難免在教育的過程中 會去添加一些我們想要的標籤在孩子身上 希望他成為我們想要的模樣 有時候是不經意的 有時候是確實也會稍微有點刻意 我有個朋友
Thumbnail
要不要生小孩? 所有考慮為人父母的未來準爸媽們,以及爸媽們 可以一起思考這個問題: 對於孩子的教養,是否有強烈決心,會負起責任? 真的有,再孕育生命吧! 教養,不只有建立在和孩子的愛與情感上 父母更有義務負起教養孩子的責任!
Thumbnail
要不要生小孩? 所有考慮為人父母的未來準爸媽們,以及爸媽們 可以一起思考這個問題: 對於孩子的教養,是否有強烈決心,會負起責任? 真的有,再孕育生命吧! 教養,不只有建立在和孩子的愛與情感上 父母更有義務負起教養孩子的責任!
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News