子类和父类的转化
数据娃掘 2006-06-26 11:20:06 class test_super_sub{
public static void main(String[] args) {
B b=new B();
System.out.println("1."+b.i);
System.out.println("2."+b.j);
A a=new B();
System.out.println("3."+a.i);
System.out.println("4."+a.j);
a.m1();
a.m2();
System.out.println("5."+a.i);
System.out.println("6."+a.j);
}
}
class A{
int i=1;
static int j=3;
void m1(){
System.out.println("A.m1()");
i=5;
}
static void m2(){
System.out.println("A.m2()");
j=7;
}
}
class B extends A{
int i=2;
static int j=4;
void m1(){
System.out.println("B.m1()");
i=6;
}
static void m2(){
System.out.println("B.m2()");
j=8;
}
}
----------
输出的是:
1.2
2.4
3.1
4.3
B.m1()
A.m2()
5.1
6.7
-----------------------------------------------
为什么会输出
B.m1()
A.m2()
5.1
呢?
a.m1();到底执行的是哪个方法?
谢谢各位!