暑假到了 小弟想說 學學看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繼承,如果可以哪樣使用,那叫繼承
所以沒方法嗎?只能student s1=new student?
作者:
GoalBased (Artificail Intelligence)
2015-08-02 22:04:00person就一定有studentID嗎? 建議先理解一下什麼是繼承,還有其他OO基礎觀念
作者:
wenyonba (射後不理很XX啊!!!!)
2015-08-03 09:11:00父類別怎麼可能知道子類別新增了什麼方法...你想實現的功能叫多型(polymorphism),先K一下書吧!
作者:
ssccg (23)
2015-08-03 14:57:00如果你確定ps1就是Student: if (ps1 is Student)
作者:
ssccg (23)
2015-08-03 15:05:00可以用 ((Student) ps1).studentID() 這叫downcast
作者:
wenyonba (射後不理很XX啊!!!!)
2015-08-04 20:59:00是很好奇說,假設你需要的不是多型,你在操作時也是要呼叫只有子類別有的新方法,那你為什麼要用父類別的變數去new