不想再留白
2007-04-23 07:50:17 UTC
想問
如果一個class裡面想宣告abstract method
是否那個class也要宣告成abstract?
會有這樣的問題是因為書上寫
"要一次把類別裡面所有方法成為抽象方法,只要直接將類別宣告成抽象類別就可以"
但我試了 方法有abstract而包含他的class沒abstract
compiler是過不了的
而class有abstract 沒實作方法沒abstract
也是過不了
所以說沒實作方法->abstract->class也要abstract--->裡面的method都abstract了?
我感覺是有abstract method的class都要abstract
但abstract class裡有實作的method就不用宣告成abstract
是這樣嗎?
關於多型
想問甚麼時候應用? 聽說是runtime時才能決定用那一種method時才用
但還是有點搞不懂
書上的例子是
class a 為父 有method print
class b,c,d 為子 也有自己的method prind
new出四個分別為a,b,c,d的東西a1,b1,c1,d1
再宣告一個為a 的變數aref
所以 當
aref = a1;
aref.print(); 就用了a的print
aref = b1;
aref.print(); 就用了b的print
.
.
.
但這有甚麼用?
不直接用a1.print就好了?
不是很懂
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 202.175.116.55
如果一個class裡面想宣告abstract method
是否那個class也要宣告成abstract?
會有這樣的問題是因為書上寫
"要一次把類別裡面所有方法成為抽象方法,只要直接將類別宣告成抽象類別就可以"
但我試了 方法有abstract而包含他的class沒abstract
compiler是過不了的
而class有abstract 沒實作方法沒abstract
也是過不了
所以說沒實作方法->abstract->class也要abstract--->裡面的method都abstract了?
我感覺是有abstract method的class都要abstract
但abstract class裡有實作的method就不用宣告成abstract
是這樣嗎?
關於多型
想問甚麼時候應用? 聽說是runtime時才能決定用那一種method時才用
但還是有點搞不懂
書上的例子是
class a 為父 有method print
class b,c,d 為子 也有自己的method prind
new出四個分別為a,b,c,d的東西a1,b1,c1,d1
再宣告一個為a 的變數aref
所以 當
aref = a1;
aref.print(); 就用了a的print
aref = b1;
aref.print(); 就用了b的print
.
.
.
但這有甚麼用?
不直接用a1.print就好了?
不是很懂
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 202.175.116.55