它不工作,我不知道爲什麼...我是新的Java世界。我不明白關於Java的繼承
public class Mixed2 {
public static void main(String[] args) {
A c = new C();
c.m1();
c.m2();
c.m3("My text");
}
}
class A {
void m1() {
System.out.print("A's m1, ");
}
}
class B extends A {
void m2() {
System.out.print("B's m2, ");
}
}
class C extends B {
void m3(Object text) {
System.out.print("C's m3, " + text);
}
}
Mixed2.java:5: error: cannot find symbol
c.m2();
^
symbol: method m2()
location: variable c of type A
Mixed2.java:6: error: cannot find symbol
c.m3("My text");
^
symbol: method m3(String)
location: variable c of type A
2 errors
是因爲沒有M2和M3的方法呢?如果我出過M2和M3它的工作原理,而B 2和C M3被調用。我不明白。
你的參考是一個'A'。所以即使運行時類型是'C',編譯器也無法知道這一點。您只能從對「A」的引用訪問'A'中定義的方法。 –