它不工作,我不知道为什么...我是新的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'中定义的方法。 –