作者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/cn.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