[问题] x xy =new y();

楼主: LouisFFs (愿翱翔)   2015-08-02 21:29:42
暑假到了 小弟想说 学学看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");
谢谢各位大大的回答!!
作者: johnpage (johnpage)   2015-08-02 21:33:00
继承,如果可以哪样使用,那叫继承
楼主: LouisFFs (愿翱翔)   2015-08-02 21:35:00
所以没方法吗?只能student s1=new student?
作者: GoalBased (Artificail Intelligence)   2015-08-02 22:04:00
person就一定有studentID吗? 建议先理解一下什么是继承,还有其他OO基础观念
楼主: LouisFFs (愿翱翔)   2015-08-02 22:15:00
OO?!
作者: wanderer1412 (.........)   2015-08-02 22:42:00
OO is Object Oriented
楼主: LouisFFs (愿翱翔)   2015-08-02 23:13:00
谢谢大大!
作者: wenyonba (射后不理很XX啊!!!!)   2015-08-03 09:11:00
父类别怎么可能知道子类别新增了什么方法...你想实现的功能叫多型(polymorphism),先K一下书吧!
楼主: LouisFFs (愿翱翔)   2015-08-03 14:11:00
我想知道的不是多型~___~((谢谢大大
作者: ssccg (23)   2015-08-03 14:57:00
如果你确定ps1就是Student: if (ps1 is Student)
楼主: LouisFFs (愿翱翔)   2015-08-03 15:00:00
好的 用is 去确认 !true
作者: ssccg (23)   2015-08-03 15:05:00
可以用 ((Student) ps1).studentID() 这叫downcast
楼主: LouisFFs (愿翱翔)   2015-08-03 18:40:00
哦哦哦 对齁 忘记有转换了谢谢大大
作者: YahooTaiwan (超可爱南西我老婆)   2015-08-03 19:20:00
需要这样写,代表你的继承关系有问题
作者: wenyonba (射后不理很XX啊!!!!)   2015-08-04 20:59:00
是很好奇说,假设你需要的不是多型,你在操作时也是要呼叫只有子类别有的新方法,那你为什么要用父类别的变量去new

Links booklink

Contact Us: admin [ a t ] ucptt.com