作者nf7series (真呆)
看板java
標題[問題] 轉型的問題
時間Sun Dec 2 22:17:54 2007
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