作者LouisFFs (願翱翔)
看板C_Sharp
標題[問題] x xy =new y();
時間Sun Aug 2 21:29:42 2015
暑假到了 小弟想說 學學看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://webptt.com/m.aspx?n=bbs/C_Sharp/M.1438522185.A.317.html
1F:推 johnpage: 繼承,如果可以哪樣使用,那叫繼承 08/02 21:33
2F:→ LouisFFs: 所以沒方法嗎?只能student s1=new student? 08/02 21:35
3F:→ GoalBased: person就一定有studentID嗎? 建議先理解一下 08/02 22:04
4F:→ GoalBased: 什麼是繼承,還有其他OO基礎觀念 08/02 22:04
5F:→ LouisFFs: OO?! 08/02 22:15
6F:推 wanderer1412: OO is Object Oriented 08/02 22:42
7F:→ LouisFFs: 謝謝大大! 08/02 23:13
8F:→ wenyonba: 父類別怎麼可能知道子類別新增了什麼方法... 08/03 09:11
9F:→ wenyonba: 你想實現的功能叫多型(polymorphism),先K一下書吧! 08/03 09:13
10F:→ LouisFFs: 我想知道的不是多型~___~((謝謝大大 08/03 14:11
11F:→ ssccg: 如果你確定ps1就是Student: if (ps1 is Student) 08/03 14:57
12F:→ LouisFFs: 好的 用is 去確認 ! 08/03 15:00
13F:→ LouisFFs: true 08/03 15:04
14F:→ ssccg: 可以用 ((Student) ps1).studentID() 這叫downcast 08/03 15:05
15F:→ LouisFFs: 哦哦哦 對齁 忘記有轉換了 08/03 18:40
16F:→ LouisFFs: 謝謝大大 08/03 18:40
17F:推 YahooTaiwan: 需要這樣寫,代表你的繼承關係有問題 08/03 19:20
18F:→ wenyonba: 是很好奇說,假設你需要的不是多型,你在操作時也是要呼叫 08/04 20:59
19F:→ wenyonba: 只有子類別有的新方法,那你為什麼要用父類別的變數去new 08/04 21:00