Re: [問題] 以父類別宣告然後以子類別的建構子new
※ 引述《qrtt1 (愚人)》之銘言:
: ※ 引述《jb0802 (james)》之銘言:
: : 還有一點問題~~所以再發另一篇文~~
: : 這樣與使用 自來也 n = new 自來也(); 所做出來的物件n應該和
: : 忍者 n = new 自來也(); 這兩個應該是一樣的n吧
: : 會有什麼不一樣的地方嗎?
: : 另外,如果兩者一樣,我個人的習慣是 當然是把他宣告成 自來也 n=new 自來也();
: : 因為這樣不是讓自己比較清楚它是自來也嗎?
: : 有些自來也有且忍者沒有的方法,我也會記得它可以被拿來叫用。
: : 另外一個問題,會使用這樣的原因是因為父類別有abstract的方法
: : 在子類別給實作了才會有這樣的宣告嗎?
: 是一樣啊, 不過不夠抽象化
: 當任務來的時候需要任務編組
: Team {
: 醫療忍者 m;
: 忍者 n;
: 隊長 o;
: 自來也 p;
: }
: 醫療忍者需 實作 interface "治療" { 施展治療忍術(); }
: =======================================================
: 每次你要組個 Team 自來也都要到, 他怎麼有時間寫小說呢 XD
: 而且這樣的設計是不是表示, 沒有自來也 Team 就不完整了呢?
: Team {
: 醫療忍者 m = new 小櫻();
: 忍者 n = new 鳴人();
: 隊長 o = new 卡卡西();
: }
: Team {
: 醫療忍者 m = new 小櫻();
: 忍者 n = new 鳴人();
: 隊長 o = new 自來也();
: }
: Team {
: 醫療忍者 m = new 綱手();
: 忍者 n = new 自來也();
: 隊長 o = new 飛猿();
: }
: 只要型別對了, 自來也可以出現在任何位置, Team 的安排也能很自由
: 不會因為少了自來也而不能組 Team
不好意思,推了一個2008年的古文@@
這兩天在學java也遇到了同樣的問題,雖然全部回文都看完了,卻還是有點疑問存在
我想請問說,既然我寫程式的人都知道說我就是要用自來也,
那為什麼我就不要直接寫 自來也 n = new 自來也(); 呢?
看了上述的任務邊組的例子後還是有點不懂,
如果說現在要組一個team
Team {
醫療忍者 m = new 綱手();
忍者 n = new 自來也();
隊長 o = new 飛猿();
}
就好像說,我都知道鋼手要當醫療忍者了,也知道飛猿要當隊長
那為什麼寫程式時不就乾脆寫成
Team {
鋼手 m = new 綱手();
自來也 n = new 自來也();
飛猿 o = new 飛猿();
}
這樣呢?
如果忍者這父類別有一個abstract的招換術需要子類去定義他
那繼承忍者的所有類別,都一定會去定義招換術不是嗎?
那既然繼承的子類都定義了,那麼所有的方法也都可以安心使用不是嗎@@?
就像前面的文章所說的
忍者 n = new 自來也();
忍者 m = new 綱手();
n.招喚術(); // 文太出現了
m.招喚術(); // 蝸蝓出現了
因為自來也、鋼手都是繼承忍者的,所以他們肯定會定義招換術,那麼程式寫成
自來也 n = new 自來也();
鋼手 m = new 綱手();
n.招喚術(); // 文太出現了
m.招喚術(); // 蝸蝓出現了
這樣也沒錯不是嗎@@?
拜託各位幫忙解除小弟的疑問,謝謝大家
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.159.8.95
※ 文章網址: http://www.ptt.cc/bbs/java/M.1405701757.A.583.html
推
07/19 00:44, , 1F
07/19 00:44, 1F
→
07/19 00:44, , 2F
07/19 00:44, 2F
請問這個別人,是說另外一個寫程式的人嗎?
可是如果說別人要用到別的忍者時,他如果想用鋼手,那麼他不就可以改成
鋼手 n = new 鋼手();
這樣嗎@@?
※ 編輯: yoll522 (49.159.8.95), 07/19/2014 01:03:33
突然間想到,還是說其實這跟寫程式的一方無關,而是跟執行時有關?
就假設說這是一個遊戲,剛開始要讓使用者選角
忍者 role;
int index = 取得使用者選的角色;
switch(index){
case 1: role = new 自來也(); break;
case 2: role = new 鋼手(); break;
}
會是這樣嗎@@?
還是我一樣理解錯誤ˇ_ˇ
※ 編輯: yoll522 (49.159.8.95), 07/19/2014 01:06:06
推
07/19 01:34, , 3F
07/19 01:34, 3F
→
07/19 17:43, , 4F
07/19 17:43, 4F
→
07/19 17:45, , 5F
07/19 17:45, 5F
推
07/19 18:51, , 6F
07/19 18:51, 6F
→
07/19 18:53, , 7F
07/19 18:53, 7F
→
07/20 19:13, , 8F
07/20 19:13, 8F
討論串 (同標題文章)