[問題] 轉型的問題

看板java作者 (真呆)時間18年前 (2007/12/02 22:17), 編輯推噓4(401)
留言5則, 4人參與, 最新討論串1/2 (看更多)
import java.util.*; public abstract class A { abstract void a1(); void a2(){} public static void main(String[] args) { A x=new B();C y=new C();A z=new C(); z.c1(); } } class B extends A { void a1(){} void a2(){} } class C extends B{void c1(){}} 上面這段程式碼中,z.c1()會導致compile錯誤,可是z為什麼不能呼叫c1呢? 搞不太懂,c1不就是class C自己的method嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.73.98.93 ※ 編輯: nf7series 來自: 203.73.98.93 (12/02 23:31)

12/03 09:46, , 1F
因為變數z的資料型態是A,所以才不認得c1
12/03 09:46, 1F

12/03 12:47, , 2F
static方法內不可以呼叫非static方法
12/03 12:47, 2F

12/04 00:08, , 3F
樓上你去打好一點根基吧。
12/04 00:08, 3F

12/04 16:06, , 4F
單從二樓的發言本身來看好像沒錯呀,只是沒有說的很精確 XD
12/04 16:06, 4F

12/04 16:09, , 5F
更精確的說是二樓的敘述與本題無關....
12/04 16:09, 5F
文章代碼(AID): #17KhwJ9R (java)
文章代碼(AID): #17KhwJ9R (java)