看板 java 關於我們 聯絡資訊
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)
ya790206:因為變數z的資料型態是A,所以才不認得c1 12/03 09:46
PRAM:static方法內不可以呼叫非static方法 12/03 12:47
adrianshum:樓上你去打好一點根基吧。 12/04 00:08
H45:單從二樓的發言本身來看好像沒錯呀,只是沒有說的很精確 XD 12/04 16:06
H45:更精確的說是二樓的敘述與本題無關.... 12/04 16:09