class A { public void func1() { System.out.println("A func1 iscalling"); } public void func2() { func1(); } } class B extends A{ public void func1() { System.out.println("B func1 is calling"); } public void func3() { System.out.println("B func3 is calling"); } } class C { public static void main(String [] args) { B b = new B(); A a = b; callA(a); callA(new B()); } public static void callA(A a) { a.func1(); a.func2(); } } 为什么a.func3();不行?a不是指向b的地址的吗?
class A {
public void func1() {
System.out.println("A func1 iscalling");
}
public void func2() {
func1();
}
}
class B extends A{
public void func1() {
System.out.println("B func1 is calling");
}
public void func3() {
System.out.println("B func3 is calling");
}
}
class C {
public static void main(String [] args) {
B b = new B();
A a = b;
callA(a);
callA(new B());
}
public static void callA(A a) {
a.func1();
a.func2();
}
}
为什么a.func3();不行?a不是指向b的地址的吗?