class A{
int i=1;
char f(){return 'A';}
static char g() {return 'A';}
}
class B extends A{
int i=2;
char f(){return 'B';}
static char g(){return 'B';}
}
public class Test{
public static void main(String[] args){
B b=new B();
A a=b;
System.out.println(a.i);
System.out.println(a.f());
System.out.println(a.g());
System.out.println(A.g());
}
}
请写出输出结果,并写出在内存中是如何分配的,为什么这样分配,希望能够详细一点,
谢谢大家啦!!!!!!!!!!!!
int i=1;
char f(){return 'A';}
static char g() {return 'A';}
}
class B extends A{
int i=2;
char f(){return 'B';}
static char g(){return 'B';}
}
public class Test{
public static void main(String[] args){
B b=new B();
A a=b;
System.out.println(a.i);
System.out.println(a.f());
System.out.println(a.g());
System.out.println(A.g());
}
}
请写出输出结果,并写出在内存中是如何分配的,为什么这样分配,希望能够详细一点,
谢谢大家啦!!!!!!!!!!!!
1
B
A
A
多态是根据运行时才确定其真正类型的。但static方法不会形成多态,根本自己本身的类型显示,同样类变量也是根据其自身原来的类型,不会形成多态。
这只是我自己的理解。不知道对你有没有帮助。
2
B
A
A
首先内存中是有object B, reference b 是指向它的。 然后reference a也是指向它的,所以我觉得a.i是2.高人指点