public class two extends A{
int fun2() {
return 456;
}
public static void main(String[] args) {
two b = new two();
b.fun1();
A a = b;
a.fun1(); }}
class A {
void fun1() {
System.out.println(fun2());
} int fun2() {
return 123;
}
}
int fun2() {
return 456;
}
public static void main(String[] args) {
two b = new two();
b.fun1();
A a = b;
a.fun1(); }}
class A {
void fun1() {
System.out.println(fun2());
} int fun2() {
return 123;
}
}
456
456因为多态的原因,fun2()每次执行的都是子类的fun2().
public class two extends A{
int fun2() {
return 456;
}
int fun1() {
System.out.println(fun2());
}
所以会打印出456第二个,虽然这个变量声明的A 类,但是指向的却是two 类, 所以也会打印出456。 需要注意的是 a 只可以执行 two 从 A 里继承的方法,而不能执行two自己定义的方法