看板 C_Sharp 關於我們 聯絡資訊
暑假到了 小弟想說 學學看c# 自學到抽象(abstract)網路找資源學 可是有一個問題 一直想不出來 敢問各位大大此問題(問題太欠噓 在此sor 想知道ans) Q: 寫了一個 抽象的 person 裡面寫了幾個函式 我再讓student繼承 之後我在student裡面多寫了一個函式 叫studentID好了(person裡面沒有寫喔) 最後我在主函式 person ps1 = new student("A123456789"); //建構子建造studentID必須的字串 但是ps1.沒顯示出可選擇studentID 我知道在上面那種宣告方法 指向的位址 只有person的函式 可是有方法能讓ps1.studentID()能使用嗎?? 除了 student s1 = new student("A123456789"); 謝謝各位大大的回答!! -- Sent from my Windows -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.172.130.150 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1438522185.A.317.html
johnpage: 繼承,如果可以哪樣使用,那叫繼承 08/02 21:33
LouisFFs: 所以沒方法嗎?只能student s1=new student? 08/02 21:35
GoalBased: person就一定有studentID嗎? 建議先理解一下 08/02 22:04
GoalBased: 什麼是繼承,還有其他OO基礎觀念 08/02 22:04
LouisFFs: OO?! 08/02 22:15
wanderer1412: OO is Object Oriented 08/02 22:42
LouisFFs: 謝謝大大! 08/02 23:13
wenyonba: 父類別怎麼可能知道子類別新增了什麼方法... 08/03 09:11
wenyonba: 你想實現的功能叫多型(polymorphism),先K一下書吧! 08/03 09:13
LouisFFs: 我想知道的不是多型~___~((謝謝大大 08/03 14:11
ssccg: 如果你確定ps1就是Student: if (ps1 is Student) 08/03 14:57
LouisFFs: 好的 用is 去確認 ! 08/03 15:00
LouisFFs: true 08/03 15:04
ssccg: 可以用 ((Student) ps1).studentID() 這叫downcast 08/03 15:05
LouisFFs: 哦哦哦 對齁 忘記有轉換了 08/03 18:40
LouisFFs: 謝謝大大 08/03 18:40
YahooTaiwan: 需要這樣寫,代表你的繼承關係有問題 08/03 19:20
wenyonba: 是很好奇說,假設你需要的不是多型,你在操作時也是要呼叫 08/04 20:59
wenyonba: 只有子類別有的新方法,那你為什麼要用父類別的變數去new 08/04 21:00