看板 C_Sharp 關於我們 聯絡資訊
假設: class A{ } class B:A{ public B{} public MethodB_1{} } 假設有兩個類別A&B B繼承自A 請問: A _a = new B() 這樣宣告有什麼用途嗎? 今天有做過實驗 宣告完後 _a也無法用子類別的方法(但還是會執行B的建構子) 那幹嘛不直接宣告 A _a = new A -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.250.153.177 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1514292876.A.6B9.html
testPtt: 通常A用virtual Method給B override 會這樣寫 12/26 21:17
ssccg: polymorphism 12/26 21:28
brian780405: 1. _a可以用子類別的方法,強制轉型後就可以 12/27 15:48
brian780405: 2. 動物有吃這個方法,但吃的方式和內容都不一樣 12/27 15:49
brian780405: 一樣的是,肚子餓就會吃東西 12/27 15:49
brian780405: 動物 cow = new 牛(); if (cow.肚子餓) { 吃(); } 12/27 15:51
brian780405: 動物 wolf = new 狼(); if (wolf.肚子餓) { 吃(); } 12/27 15:51
name2name2: 找本 深入淺出設計模式 讀一下 12/28 23:05