[問題] x xy =new y();

看板C_Sharp作者 (願翱翔)時間9年前 (2015/08/02 21:29), 編輯推噓3(3016)
留言19則, 7人參與, 最新討論串1/1
暑假到了 小弟想說 學學看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

08/02 21:33, , 1F
繼承,如果可以哪樣使用,那叫繼承
08/02 21:33, 1F

08/02 21:35, , 2F
所以沒方法嗎?只能student s1=new student?
08/02 21:35, 2F

08/02 22:04, , 3F
person就一定有studentID嗎? 建議先理解一下
08/02 22:04, 3F

08/02 22:04, , 4F
什麼是繼承,還有其他OO基礎觀念
08/02 22:04, 4F

08/02 22:15, , 5F
OO?!
08/02 22:15, 5F

08/02 22:42, , 6F
OO is Object Oriented
08/02 22:42, 6F

08/02 23:13, , 7F
謝謝大大!
08/02 23:13, 7F

08/03 09:11, , 8F
父類別怎麼可能知道子類別新增了什麼方法...
08/03 09:11, 8F

08/03 09:13, , 9F
你想實現的功能叫多型(polymorphism),先K一下書吧!
08/03 09:13, 9F

08/03 14:11, , 10F
我想知道的不是多型~___~((謝謝大大
08/03 14:11, 10F

08/03 14:57, , 11F
如果你確定ps1就是Student: if (ps1 is Student)
08/03 14:57, 11F

08/03 15:00, , 12F
好的 用is 去確認 !
08/03 15:00, 12F

08/03 15:04, , 13F
true
08/03 15:04, 13F

08/03 15:05, , 14F
可以用 ((Student) ps1).studentID() 這叫downcast
08/03 15:05, 14F

08/03 18:40, , 15F
哦哦哦 對齁 忘記有轉換了
08/03 18:40, 15F

08/03 18:40, , 16F
謝謝大大
08/03 18:40, 16F

08/03 19:20, , 17F
需要這樣寫,代表你的繼承關係有問題
08/03 19:20, 17F

08/04 20:59, , 18F
是很好奇說,假設你需要的不是多型,你在操作時也是要呼叫
08/04 20:59, 18F

08/04 21:00, , 19F
只有子類別有的新方法,那你為什麼要用父類別的變數去new
08/04 21:00, 19F
文章代碼(AID): #1LlXj9CN (C_Sharp)